On 29/05/2025 22.31, Stefan Hajnoczi wrote:
Commit 2e8e18c2e463 ("virtio-scsi: add iothread-vq-mapping parameter")
removed the limitation that virtio-scsi devices must successfully set
the AioContext on their BlockBackends. This was made possible thanks to
the QEMU multi-queue block layer.
This
Hi Michael,
On Thu, 2025-05-29 at 10:23 +0300, Michael Tokarev wrote:
> On 11.05.2025 10:33, Weifeng Liu wrote:
> > Hi all,
> >
> > Now we have quite a lot of display backends for different use
> > cases.
> > Even in the context of gtk, we have various implementations (e.g.,
> > gl=on
> > vs gl=o
On 29/05/2025 21.09, Zhuoying Cai wrote:
On 5/14/25 12:18 PM, Thomas Huth wrote:
On 09/05/2025 00.50, Zhuoying Cai wrote:
...
+int qcrypto_get_x509_cert_key_id(uint8_t *cert, size_t size,
+ QCryptoKeyidFlags flag,
+ uint8_t *resu
Report hashing capability so that virtio-net can deliver the correct
capability information to the guest.
Signed-off-by: Akihiko Odaki
---
include/net/net.h | 3 +++
net/net.c | 9 +
net/vhost-vdpa.c | 28
3 files changed, 40 insertions(+)
diff --
On 29/05/2025 16.45, Stefan Hajnoczi wrote:
The OrangePi, Cubieboard, Banana Pi, and replay tests use a sunxi
armhf Linux package URL that is failing due to an expired TLS
certificate:
2025-05-29 13:37:56,005 - qemu-test - INFO - Downloading
https://apt.armbian.com/pool/main/l/linux-6.6.16/linux
DEFINE_PROP_ON_OFF_AUTO_BIT64() corresponds to DEFINE_PROP_ON_OFF_AUTO()
as DEFINE_PROP_BIT64() corresponds to DEFINE_PROP_BOOL(). The difference
is that DEFINE_PROP_ON_OFF_AUTO_BIT64() exposes OnOffAuto instead of
bool.
Signed-off-by: Akihiko Odaki
---
include/hw/qdev-properties.h | 18
virtio_net_pre_load_queues() inspects vdev->guest_features to tell if
VIRTIO_NET_F_RSS or VIRTIO_NET_F_MQ is enabled to infer the required
number of queues. This works for VIRTIO_NET_F_MQ but it doesn't for
VIRTIO_NET_F_RSS because only the lowest 32 bits of vdev->guest_features
is set at the point
It is no longer used.
Signed-off-by: Akihiko Odaki
---
net/vhost-vdpa.c | 8
1 file changed, 8 deletions(-)
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
index 4f63ded40d47..149c0f7f1766 100644
--- a/net/vhost-vdpa.c
+++ b/net/vhost-vdpa.c
@@ -238,12 +238,6 @@ static void vhost_vdpa
This allows offloading hash reporting and RSS to tap.
Signed-off-by: Akihiko Odaki
---
hw/net/virtio-net.c | 69 +++--
1 file changed, 56 insertions(+), 13 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 52fe404b3431..0a3
eBPF RSS virtio-net support was written in assumption that there is only
one alternative RSS implementation: 'in-qemu' RSS. It is no longer true,
and we now have yet another implementation; namely the peer RSS.
Signed-off-by: Akihiko Odaki
---
docs/devel/ebpf_rss.rst | 22 +++---
I'm proposing to add a feature to offload virtio-net RSS/hash report to
Linux. This series contain patches to utilize the proposed Linux
feature. The patches for Linux are available at:
https://lore.kernel.org/r/20250307-rss-v9-0-df7662402...@daynix.com/
Note that the referenced patches for Linux
This allows offloading virtio-net hashing to tap on Linux.
Signed-off-by: Akihiko Odaki
---
net/tap-linux.h | 1 +
net/tap_int.h | 1 +
net/tap-bsd.c | 5 +
net/tap-linux.c | 5 +
net/tap-solaris.c | 5 +
net/tap-stub.c| 5 +
net/tap.c | 8
7 file
This is necessary to offload hashing to tap.
Signed-off-by: Akihiko Odaki
---
hw/net/virtio-net.c | 15 +--
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 0a333d560d7b..3469c211b13a 100644
--- a/hw/net/virtio-net.c
+++ b/
This adds functions to configure virtio hashing and implements it
for Linux's tap. vDPA will have empty functions as configuring virtio
hashing is done with the load().
Signed-off-by: Akihiko Odaki
---
include/net/net.h | 13 +
net/tap-linux.h | 3 +++
net/tap_int.h | 3 +++
By default, virtio-net limits the hash types that will be advertised to
the guest so that all hash types are covered by the offloading
capability the client provides. This change allows to override this
behavior and to advertise hash types that require user-space hash
calculation by specifying "on"
Retrieve peer hashing capability instead of hardcoding.
Signed-off-by: Akihiko Odaki
---
include/hw/virtio/virtio-net.h | 5 ++-
hw/net/virtio-net.c| 71 ++
net/vhost-vdpa.c | 4 +--
3 files changed, 64 insertions(+), 16 deletio
Move virtio_net_get_features() to the later part of the file so that
it can call other functions.
Signed-off-by: Akihiko Odaki
---
hw/net/virtio-net.c | 146 ++--
1 file changed, 73 insertions(+), 73 deletions(-)
diff --git a/hw/net/virtio-net.c b
This patch series was extracted from:
https://lore.kernel.org/qemu-devel/20250313-hash-v4-0-c75c494b4...@daynix.com/
("[PATCH RFC v4 00/11] virtio-net: Offload hashing without eBPF")
According to the specification, virtio-net devices with VIRTIO_NET_F_RSS
or VIRTIO_NET_F_HASH_REPORT can report sup
file-posix used to assume that existing holes satisfy the requested
alignment, which equals to the estimated direct I/O alignment
requirement if direct I/O is requested, and assert the assumption
unless it is at EOF.
However, the estimation of direct I/O alignment requirement is sometimes
inexact
On 29/05/2025 21:48, Jonathan Cameron via wrote:
> This has been wrong from day 1. For now we only have
> two entries (component and device registers).
Wow, I finally understood this.
>
> The wrong size could lead to arbitrary data off the stack being presented
> in PCIe config space.
>
> S
On Thu, 29 May 2025, Bernhard Beschow wrote:
Am 25. April 2025 15:28:20 UTC schrieb "Philippe Mathieu-Daudé"
:
From: BALATON Zoltan
We have several device tree files already and may have more in the
future so add a new dtb subdirectory and move device tree files there
so they are not mixed wi
On Thu, May 22, 2025 at 6:14 PM Jay Chang wrote:
>
> The first patch extends the number of PMP regions supported up to 64,
> following the RISC-V Privileged Specification (version >1.12), where
> RV32 can have up to 64 PMP regions configured through 16 CSRs.
>
> The second patch makes the PMP regi
Fiona reported that an ext4 filesystem on top of LVM can sometimes
report over-allocation to du (based on the heuristics the filesystem
is making while observing the contents being mirrored); even though
the contents and actual size matched, about 50% of the time the size
reported by disk_usage was
Fiona reported that ZFS makes sparse file testing awkward, since:
- it has asynchronous allocation (not even 'fsync $file' makes du see
the desired size; it takes the slower 'fsync -f $file' which is not
appropriate for the tests)
- for tests of fully allocated files, ZFS with compression enabl
From: Nir Soffer
Testing reading and writing from qemu-nbd using a unix domain socket
shows that the platform default send buffer size is too low, leading to
poor performance and hight cpu usage.
Add a helper for setting socket send buffer size to be used in NBD code.
It can also be used in othe
From: Nir Soffer
Like macOS we have similar issue on Linux. For TCP socket the send
buffer size is 2626560 bytes (~2.5 MiB) and we get good performance.
However for unix socket the default and maximum buffer size is 212992
bytes (208 KiB) and we see poor performance when using one NBD
connection,
From: Nir Soffer
On macOS we need to increase unix socket buffers size on the client and
server to get good performance. We set socket buffers on macOS after
connecting or accepting a client connection.
Testing shows that setting socket receive buffer size (SO_RCVBUF) has no
effect on performanc
Commit be9bac07 added a utility disk_usage function, but there are
a couple of other tests that could also use it.
Signed-off-by: Eric Blake
Message-ID: <20250523163041.2548675-6-ebl...@redhat.com>
Reviewed-by: Fiona Ebner
Tested-by: Fiona Ebner
---
tests/qemu-iotests/125 | 2 +-
tests/qemu-io
The following changes since commit d2e9b78162e31b1eaf20f3a4f563da82da56908d:
Merge tag 'pull-qapi-2025-05-28' of https://repo.or.cz/qemu/armbru into
staging (2025-05-29 08:36:01 -0400)
are available in the Git repository at:
https://repo.or.cz/qemu/ericb.git tags/pull-nbd-2025-05-29
for yo
On Thu, May 29, 2025 at 04:31:47PM -0400, Stefan Hajnoczi wrote:
> Commit 2e8e18c2e463 ("virtio-scsi: add iothread-vq-mapping parameter")
> removed the limitation that virtio-scsi devices must successfully set
> the AioContext on their BlockBackends. This was made possible thanks to
> the QEMU mult
On Thu, May 29, 2025 at 06:46:20AM +, Duan, Zhenzhong wrote:
> >Looking at the kernel iommufd_hwpt_invalidate() routine and
> >intel_nested_cache_invalidate_user(), it doesn't seem possible to
> >return a different number of cache entries. Are you anticipating
> >other implementations (sMMU) ?
On Wed, May 28, 2025 at 03:09:16PM -0400, Stefan Hajnoczi wrote:
> AioContext has its own io_uring instance for file descriptor monitoring.
> The disk I/O io_uring code was developed separately. Originally I
> thought the characteristics of file descriptor monitoring and disk I/O
> were too differe
On Thu, May 29, 2025 at 06:07:34PM +0100, Jonathan Cameron wrote:
> On Thu, 29 May 2025 16:34:25 +
> nifan@gmail.com wrote:
>
> > From: Fan Ni
> >
> > Per cxl r3.2 Section 9.13.3.3, extent capacity tracking should include
> > extents in different states including added, pending, etc.
> >
Commit 2e8e18c2e463 ("virtio-scsi: add iothread-vq-mapping parameter")
removed the limitation that virtio-scsi devices must successfully set
the AioContext on their BlockBackends. This was made possible thanks to
the QEMU multi-queue block layer.
This change broke qemu-iotests 240, which checks th
We have support for sdtrig for awhile but we are not advertising it. It
is enabled by default via the 'debug' flag. Use the same flag to also
advertise sdtrig.
Signed-off-by: Daniel Henrique Barboza
---
target/riscv/cpu.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/target/riscv/cpu.c b/t
'ssstrict' is a RVA23 profile-defined extension defined as follows:
"No non-conforming extensions are present. Attempts to execute
unimplemented opcodes or access unimplemented CSRs in the standard or
reserved encoding spaces raises an illegal instruction exception that
results in a contained trap
Most of the named features are added directly in isa_edata_arr[], some
of them are also added in riscv_cpu_named_features(). There is a reason
for that, and the existing docs can do better explaining it.
Signed-off-by: Daniel Henrique Barboza
---
target/riscv/cpu.c | 14 --
1 file ch
Hi,
These simple patches add two missing named features in riscv,isa. Third
patch is a doc change I figured was worth doing.
Drew, as far as Server SoC Reference platform goes, we don't have
'sdext'. I guess we'll have to postpone the Server Soc Ref work for now.
Daniel Henrique Barboza (3):
On Wed, May 28, 2025 at 03:09:15PM -0400, Stefan Hajnoczi wrote:
> fdmon_ops->wait() is called with notify_me enabled. This makes it an
> expensive place to call qemu_bh_schedule() because aio_notify() invokes
> write(2) on the EventNotifier.
>
> Moving qemu_bh_schedule() after notify_me is reset
On Wed, May 28, 2025 at 03:09:14PM -0400, Stefan Hajnoczi wrote:
> Introduce the aio_add_sqe() API for submitting io_uring requests in the
> current AioContext. This allows other components in QEMU, like the block
> layer, to take advantage of io_uring features without creating their own
> io_uring
Do not reset a vfio-pci device during CPR, and do not complain if the
kernel's PCI config space changes for non-emulated bits between the
vmstate save and load, which can happen due to ongoing interrupt activity.
Signed-off-by: Steve Sistare
---
include/hw/vfio/vfio-cpr.h | 2 ++
hw/vfio/cpr.c
Add the helper function cpr_get_fd_param, to use when preserving
a file descriptor that is opened externally and passed to QEMU.
cpr_get_fd_param returns a descriptor number either from a QEMU
command-line parameter, from a getfd command, or from CPR state.
When a descriptor is passed to new QEMU
The DeviceID bits are extracted using an incorrect offset in the call to
amdvi_iotlb_remove_page(). This field is read (correctly) earlier, so use
the value already retrieved for devid.
Cc: qemu-sta...@nongnu.org
Fixes: d29a09ca6842 ("hw/i386: Introduce AMD IOMMU")
Signed-off-by: Alejandro Jimenez
Correctly calculate the Device Table size using the format encoded in the
Device Table Base Address Register (MMIO Offset h).
Cc: qemu-sta...@nongnu.org
Fixes: d29a09ca6842 ("hw/i386: Introduce AMD IOMMU")
Signed-off-by: Alejandro Jimenez
Reviewed-by: Vasant Hegde
---
hw/i386/amd_iommu.c |
The DTE validation method verifies that all bits in reserved DTE fields are
unset. Update them according to the latest definition available in AMD I/O
Virtualization Technology (IOMMU) Specification - Section 2.2.2.1 Device
Table Entry Format. Remove the magic numbers and use a macro helper to
gene
The definitions encoding the maximum Virtual, Physical, and Guest Virtual
Address sizes supported by the IOMMU are using incorrect offsets i.e. the
VASize and GVASize offsets are switched.
Cc: qemu-sta...@nongnu.org
Fixes: d29a09ca6842 ("hw/i386: Introduce AMD IOMMU")
Signed-off-by: Alejandro Jime
No functional change.
Signed-off-by: Alejandro Jimenez
Reviewed-by: Vasant Hegde
---
hw/i386/amd_iommu.h | 4
1 file changed, 4 deletions(-)
diff --git a/hw/i386/amd_iommu.h b/hw/i386/amd_iommu.h
index 1836b7061d848..31e473924fa20 100644
--- a/hw/i386/amd_iommu.h
+++ b/hw/i386/amd_iommu.h
The main reason for sending this new revision so soon is that v2 included a
duplicated [PATCH 5/7]. I fixed a typo in the commit subject and missed
removing the old patch. Apologies for the mistake.
Additional changes in v3:
- Fixed typo on [PATCH 1/7] subject line (s/Miscellanous/Miscellaneous/).
Address various issues with definitions of the MMIO registers e.g. for the
Device Table Address Register, the size mask currently encompasses reserved
bits [11:9], so change it to only extract the bits [8:0] encoding size.
Convert masks to use GENMASK64 for consistency, and make unrelated
definiti
Fix an off-by-one error in the definition of AMDVI_IR_PHYS_ADDR_MASK. The
current definition masks off the most significant bit of the Interrupt Table
Root ptr i.e. it only generates a mask with bits [50:6] set. See the AMD I/O
Virtualization Technology (IOMMU) Specification for the Interrupt Table
Move event_notifier_init calls to a helper vfio_notifier_init.
This version is trivial, but it will be expanded to support CPR
in subsequent patches. No functional change.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
hw/vfio/pci.c | 40 +---
During CPR, after VFIO_DMA_UNMAP_FLAG_VADDR, the vaddr is temporarily
invalid, so mediated devices cannot be supported. Add a blocker for them.
This restriction will not apply to iommufd containers when CPR is added
for them in a future patch.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le
Export various MSI functions, renamed with a vfio_pci prefix, for use by
CPR in subsequent patches. No functional change.
Signed-off-by: Steve Sistare
---
hw/vfio/pci.h | 8
hw/vfio/pci.c | 29 +
2 files changed, 25 insertions(+), 12 deletions(-)
diff --gi
cpr-transfer breaks vfio network connectivity to and from the guest, and
the host system log shows:
irq bypass consumer (token a03c32e5) registration fails: -16
which is EBUSY. This occurs because KVM descriptors are still open in
the old QEMU process. Close them.
Cc: Paolo Bonzini
Si
Pass vdev and nr to vfio_notifier_init, for use by CPR in a subsequent
patch. No functional change.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
hw/vfio/pci.c | 31 +++
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/hw/vfio/pci.c b
Define a list of vfio devices in CPR state, in a subsection so that
older QEMU can be live updated to this version. However, new QEMU
will not be live updateable to old QEMU. This is acceptable because
CPR is not yet commonly used, and updates to older versions are unusual.
The contents of each
Pass through the MemoryRegion to DMA operation handlers of vfio
containers. The vfio-user container will need this later, to translate
the vaddr into an offset for the dma map vfio-user message.
Originally-by: John Johnson
Signed-off-by: Jagannathan Raman
Signed-off-by: Elena Ufimtseva
Signed-o
Define the change process ioctl
Signed-off-by: Steve Sistare
---
include/system/iommufd.h | 2 ++
backends/iommufd.c | 24
backends/trace-events| 1 +
3 files changed, 27 insertions(+)
diff --git a/include/system/iommufd.h b/include/system/iommufd.h
index ac
In new QEMU, do not register the memory listener at device creation time.
Register it later, in the container post_load handler, after all vmstate
that may affect regions and mapping boundaries has been loaded. The
post_load registration will cause the listener to invoke its callback on
each flat
On 5/20/25 6:25 AM, Thomas Huth wrote:
> On 09/05/2025 00.50, Zhuoying Cai wrote:
>> Enable secure IPL in audit mode, which performs signature verification,
>> but any error does not terminate the boot process. Only warnings will be
>> logged to the console instead.
>>
>> Add a comp_len variable
During cpr-transfer load in new QEMU, the vfio_memory_listener causes
spurious calls to map and unmap DMA regions, as devices are created and
the address space is built. This memory was already already mapped by the
device in old QEMU, so suppress the map and unmap callbacks during incoming
CPR.
If vfio_realize fails after vfio_device_attach, it should call
vfio_device_detach during error recovery. If it fails after
vfio_device_get_name, it should free vbasedev->name. If it fails
after vfio_pci_config_setup, it should free vdev->msix.
To fix all, call vfio_pci_put_device().
Signed-off-
VFIO iommufd devices will need access to ioas_id, devid, and hwpt_id in
new QEMU at realize time, so add them to CPR state. Define CprVFIODevice
as the object which holds the state and is serialized to the vmstate file.
Define accessors to copy state between VFIODevice and CprVFIODevice.
Signed-o
Define qemu_ram_get_fd_offset, so CPR can map a memory region using
IOMMU_IOAS_MAP_FILE in a subsequent patch.
Signed-off-by: Steve Sistare
Reviewed-by: Peter Xu
Reviewed-by: Zhenzhong Duan
---
include/exec/cpu-common.h | 1 +
system/physmem.c | 5 +
2 files changed, 6 insertions(
Define a vmstate priority that is lower than the default, so its handlers
run after all default priority handlers. Since 0 is no longer the default
priority, translate an uninitialized priority of 0 to MIG_PRI_DEFAULT.
CPR for vfio will use this to install handlers for containers that run
after h
Save the MSI message area as part of vfio-pci vmstate, and preserve the
interrupt and notifier eventfd's. migrate_incoming loads the MSI data,
then the vfio-pci post_load handler finds the eventfds in CPR state,
rebuilds vector data structures, and attaches the interrupts to the new
KVM instance.
Skip allocation of, and attachment to, hwpt_id. Recover it from CPR state.
Signed-off-by: Steve Sistare
---
hw/vfio/iommufd.c | 30 ++
1 file changed, 22 insertions(+), 8 deletions(-)
diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c
index 5119c17..f0abd41 100644
-
If there are multiple containers and unmap-all fails for some container, we
need to remap vaddr for the other containers for which unmap-all succeeded.
Recover by walking all address ranges of all containers to restore the vaddr
for each. Do so by invoking the vfio listener callback, and passing a
cpr-transfer will use the device name as a key to find the value
of the device descriptor in new QEMU. However, if the descriptor
number is specified by a command-line fd parameter, then
vfio_device_get_name creates a name that includes the fd number.
This causes a chicken-and-egg problem: new QEM
Finish CPR by change the owning process of the iommufd device in
post load.
Signed-off-by: Steve Sistare
---
hw/vfio/cpr-iommufd.c | 30 ++
1 file changed, 30 insertions(+)
diff --git a/hw/vfio/cpr-iommufd.c b/hw/vfio/cpr-iommufd.c
index 152a661..a9e3f68 100644
--- a
CPR is integrated with live migration, and has the same maintainers.
But, add a CPR section to add a reviewer.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
MAINTAINERS | 9 +
1 file changed, 9 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index e27d145..e29fb4f
Register a vfio iommufd container and device for CPR, replacing the generic
CPR register call with a more specific iommufd register call. Add a
blocker if the kernel does not support IOMMU_IOAS_CHANGE_PROCESS.
This is mostly boiler plate. The fields to to saved and restored are added
in subseque
Export msix_is_pending for use by cpr. No functional change.
Signed-off-by: Steve Sistare
Acked-by: Michael S. Tsirkin
---
include/hw/pci/msix.h | 1 +
hw/pci/msix.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/hw/pci/msix.h b/include/hw/pci/msix.h
inde
In the container pre_save handler, discard the virtual addresses in DMA
mappings with VFIO_DMA_UNMAP_FLAG_VADDR, because guest RAM will be
remapped at a different VA after in new QEMU. DMA to already-mapped
pages continues.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
hw/vfio
Define iommufd_backend_map_file_dma to implement IOMMU_IOAS_MAP_FILE.
This will be called as a substitute for iommufd_backend_map_dma, so
the error conditions for BARs are copied as-is from that function.
Signed-off-by: Steve Sistare
Reviewed-by: Zhenzhong Duan
---
include/system/iommufd.h | 3
If an invariant device name cannot be created, block CPR.
Signed-off-by: Steve Sistare
---
include/hw/vfio/vfio-cpr.h | 1 +
hw/vfio/device.c | 11 +++
2 files changed, 12 insertions(+)
diff --git a/include/hw/vfio/vfio-cpr.h b/include/hw/vfio/vfio-cpr.h
index 25e74ee..170a11
Pass the vector number to vfio_connect_kvm_msi_virq and
vfio_remove_kvm_msi_virq, so it can be passed to their subroutines in
a subsequent patch. No functional change.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
hw/vfio/pci.c | 13 +++--
1 file changed, 7 insertions(
vfio_cpr_[un]register_container is no longer used since they were
subsumed by container type-specific registration. Delete them.
Signed-off-by: Steve Sistare
---
include/hw/vfio/vfio-cpr.h | 4
hw/vfio/cpr.c | 13 -
2 files changed, 17 deletions(-)
diff --git a/i
Reconstruct userland device state after CPR. During vfio_realize, skip all
ioctls that configure the device, as it was already configured in old QEMU.
Skip bind, and use the devid from CPR state.
Skip allocation of, and attachment to, ioas_id. Recover ioas_id from CPR
state, and use it to find
Move event_notifier_cleanup calls to a helper vfio_notifier_cleanup.
This version is trivial, and does not yet use the vdev and nr parameters.
No functional change.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
hw/vfio/pci.c | 28 +---
1 file changed, 17
Use IOMMU_IOAS_MAP_FILE when the mapped region is backed by a file.
Such a mapping can be preserved without modification during CPR,
because it depends on the file's address space, which does not change,
rather than on the process's address space, which does change.
Signed-off-by: Steve Sistare
R
Do not reset a vfio-pci device during CPR.
Signed-off-by: Steve Sistare
---
include/hw/pci/pci_device.h | 3 +++
hw/pci/pci.c| 5 +
hw/vfio/pci.c | 7 +++
3 files changed, 15 insertions(+)
diff --git a/include/hw/pci/pci_device.h b/include/hw/pci/pci_device
Preserve vfio INTx state across cpr-transfer. Preserve VFIOINTx fields as
follows:
pin : Recover this from the vfio config in kernel space
interrupt : Preserve its eventfd descriptor across exec.
unmask : Ditto
route.irq : This could perhaps be recovered in vfio_pci_post_load by
callin
Add the cpr_incoming_needed, cpr_open_fd, and cpr_resave_fd helpers,
for use when adding cpr support for vfio and iommufd.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
include/migration/cpr.h | 5 +
migration/cpr.c | 36
2 file
Define vfio_device_free_name to free the name created by
vfio_device_get_name. A subsequent patch will do more there.
No functional change.
Signed-off-by: Steve Sistare
---
include/hw/vfio/vfio-device.h | 1 +
hw/vfio/ap.c | 2 +-
hw/vfio/ccw.c | 2 +-
hw/vfio/d
Modify memory_get_xlat_addr and vfio_get_xlat_addr to return the memory
region that the translated address is found in. This will be needed by
CPR in a subsequent patch to map blocks using IOMMU_IOAS_MAP_FILE.
Also return the xlat offset, so we can simplify the interface by removing
the out param
Save the iommu and vfio device fd in CPR state when it is created.
After CPR, the fd number is found in CPR state and reused.
Signed-off-by: Steve Sistare
---
backends/iommufd.c| 25 -
hw/vfio/cpr-iommufd.c | 10 ++
hw/vfio/device.c | 9 +
3 file
At vfio creation time, save the value of vfio container, group, and device
descriptors in CPR state. On qemu restart, vfio_realize() finds and uses
the saved descriptors.
During reuse, device and iommu state is already configured, so operations
in vfio_realize that would modify the configuration,
Extract a subroutine vfio_pci_vector_init. No functional change.
Signed-off-by: Steve Sistare
---
hw/vfio/pci.c | 24 +---
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 840590c..2d6dc54 100644
--- a/hw/vfio/pci.c
+++ b/hw/
Register a legacy container for cpr-transfer, replacing the generic CPR
register call with a more specific legacy container register call. Add a
blocker if the kernel does not support VFIO_UPDATE_VADDR or VFIO_UNMAP_ALL.
This is mostly boiler plate. The fields to to saved and restored are added
Support vfio and iommufd devices with the cpr-transfer live migration mode.
Devices that do not support live migration can still support cpr-transfer,
allowing live update to a new version of QEMU on the same host, with no loss
of guest connectivity.
No user-visible interfaces are added.
For lega
Define vfio_find_ram_discard_listener as a subroutine so additional calls to
it may be added in a subsequent patch.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
include/hw/vfio/vfio-container-base.h | 3 +++
hw/vfio/listener.c| 35 ++---
Move vfio-cpr.h to include/hw/vfio, because it will need to be included by
other files there.
Signed-off-by: Steve Sistare
Reviewed-by: Cédric Le Goater
---
MAINTAINERS| 1 +
hw/vfio/vfio-cpr.h | 15 ---
include/hw/vfio/vfio-cpr.h | 18 ++
hw
On 5/14/25 12:18 PM, Thomas Huth wrote:
> On 09/05/2025 00.50, Zhuoying Cai wrote:
>> DIAG 320 subcode 2 provides verification-certificates (VCs) that are in the
>> certificate store. Only X509 certificates in DER format and SHA-256 hash
>> type are recognized.
>>
>> The subcode value is denoted
On 5/22/25 7:03 PM, Rowan Hart wrote:
This patch adds functionality to enforce the requested QEMU_PLUGIN_CB_
flags level passed when registering a callback function using the
plugins API. Each time a callback is about to be invoked, a thread-local
variable will be updated with the level that call
On 5/22/25 7:03 PM, Rowan Hart wrote:
From: novafacing
This patch adds a plugin that exercises the virtual and hardware memory
read-write API functions added in a previous patch. The plugin takes a
target and patch byte sequence, and will overwrite any instruction
matching the target byte seque
On 5/22/25 7:03 PM, Rowan Hart wrote:
From: novafacing
This patch updates the plugin version to gate new APIs and adds notes
describing what has been added.
Signed-off-by: Rowan Hart
---
include/qemu/qemu-plugin.h | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/
On 5/22/25 7:03 PM, Rowan Hart wrote:
This patch is required to make the insn plugin work after adding
enforcement of QEMU_PLUGIN_CB_ flags in calls to read or write
registers. Previously, these flags were not enforced and the API could
be called from anywhere, but this was not intended as descri
On 5/14/25 1:43 AM, Thomas Huth wrote:
> On 09/05/2025 00.50, Zhuoying Cai wrote:
>> Create a certificate store for boot certificates used for secure IPL.
>>
>> Load certificates from the -boot-certificate option into the cert store.
>
> Nit: Remove the "-" before the "boot-certificate" here now
On 5/22/25 7:03 PM, Rowan Hart wrote:
From: novafacing
This patch adds functions to the plugins API to allow plugins to read
and write memory via hardware addresses. The functions use the current
address space of the current CPU in order to avoid exposing address
space information to users. A l
1 - 100 of 174 matches
Mail list logo