On Mon, Oct 19, 2026 at 3:48 PM Eugenio Pérez <[email protected]> wrote: > > This series introduces features to the VDUSE (vDPA Device in Userspace) driver > to support Live Migration. > > Currently, DPDK does not support VDUSE devices live migration because the > driver lacks a mechanism to suspend the device and quiesce the rings to > initiate the switchover. This series implements the suspend operation to > address this limitation. > > Furthermore, enabling Live Migration for devices with control virtqueue > requires two additional features. Both of them are included in this series. > > * Address Spaces ID (ASID) support: This allows QEMU to isolate and intercept > the device's CVQ. By doing so, QEMU is able to migrate the device status > transparently, without requiring the device to support state save and > restore. > * QUEUE_READY: This allows QEMU to control when the dataplane virtqueues are > enabled. This ensures the dataplane is started after the device > configuration has been fully restored via the CVQ. > > It also enables the VIRTIO_NET_F_STATUS feature. This allows the device to > signal the driver that it needs to send gratuitous ARP with > VIRTIO_NET_S_ANNOUNCE, reducing the Live Migration downtime. > > v5: > * Update headers to 7.3 > * Rebase on top of main, merge conflicts. > > v4: > * Rebase on top of origin/main, which already includes the __counted_by error > fix. > * Add VDUSE_SUSPEND to lib/vhost/vduse.c:vduse_reqs_str (Maxime). > > v3: > * Include uapi/linux/stddef.h and revert the -D__counted_by from v2. > > v2: > * Add -D__counted_by(X)= if the compiler does not support it. It is > pulled by the kernel headers. > > PATCH v1: > * Move to VDUSE_SET_FEATURES ioctl instead of config space field. > * Add a few bounds control. > * Update kernel headers to v7.3-rc3. > > RFC v4: > * Sync headers with Linux's latest existing and proposed UAPI. Both > files constants and new ioctl VDUSE_SET_FEATURES. > * Check for more error conditions and clarified some error messages in > ready message processing. > * Add relevant release notes. > * Fix cosmetic whitespaces & checkpath errors. > * Fix error path of vhost_user_iotlb_init and vhost_user_iotlb_init_one. > * Fix commits author. > > RFC v3: > * Replace incorrect '%lx' DEBUG print format specifier with PRIx64 > > RFC v2: > * Following latest comments on kernel series about VDUSE features, not > checking > API version but only check if VDUSE_GET_FEATURES success. > * Move the start and last declarations in the braces as gcc 8 does not like > them interleaved with statements. Actually, I think the move was a mistake > in > the first version. > https://mails.dpdk.org/archives/test-report/2026-February/958175.html > > Eugenio Pérez (3): > uapi: import VDUSE and VFIO header from v7.3 kernel > vhost: Support VDUSE QUEUE_READY feature > vhost: Support vduse suspend feature > > Maxime Coquelin (6): > vhost: introduce ASID support > vhost: add VDUSE API version negotiation > vhost: add virtqueues groups support to VDUSE > vhost: add ASID support to VDUSE IOTLB operations > vhost: claim VDUSE support for API version 1 > vhost: add net status feature to VDUSE > > kernel/linux/uapi/linux/iommufd.h | 105 +++++++++++- > kernel/linux/uapi/linux/stddef.h | 4 + > kernel/linux/uapi/linux/vduse.h | 113 ++++++++++++- > kernel/linux/uapi/linux/vfio.h | 51 +++++- > kernel/linux/uapi/version | 2 +- > lib/vhost/iotlb.c | 233 +++++++++++++++++---------- > lib/vhost/iotlb.h | 14 +- > lib/vhost/vduse.c | 259 +++++++++++++++++++++++++++--- > lib/vhost/vduse.h | 3 +- > lib/vhost/vhost.c | 16 +- > lib/vhost/vhost.h | 16 +- > lib/vhost/vhost_user.c | 13 +- > 12 files changed, 676 insertions(+), 153 deletions(-) > > -- > 2.56.0 >
applied to next-virtio/for-next-net. Thanks! Maxime

