It's possible to migrate vdpa net devices if they are shadowed from the start. But to always shadow the dataplane is effectively break its host passthrough, so its not convenient in vDPA scenarios.
This series enables dynamically switching to shadow mode only at migration time. This allow full data virtqueues passthrough all the time qemu is not migrating. To do so it uses the VHOST_VDPA_SUSPEND ioctl, not merged in Linux at this time [1]. Because of that, first patch is not signed and present a header [NOTMERGE]. This series is also based on ASID one [2], not merged in qemu at the moment. Comments are welcome. [1] https://lkml.org/lkml/2022/8/10/732 [2] https://lists.nongnu.org/archive/html/qemu-devel/2022-08/msg01047.html Eugenio Pérez (8): [NOTMERGE] Update linux headers vdpa: Extract get_backend_features from vhost_vdpa_get_as_num vhost: expose memory listener priority vdpa: Add log_enabled to VhostVDPAState vdpa: Add vdpa memory listener vdpa: Negotiate _F_SUSPEND feature vdpa: Add feature_log member to vhost_vdpa vdpa: Conditionally expose _F_LOG in vhost_net devices include/hw/virtio/vhost-vdpa.h | 1 + include/hw/virtio/vhost.h | 2 + include/standard-headers/linux/vhost_types.h | 3 + linux-headers/linux/vhost.h | 3 + hw/virtio/vhost-vdpa.c | 5 +- hw/virtio/vhost.c | 2 +- net/vhost-vdpa.c | 128 +++++++++++++++++-- 7 files changed, 132 insertions(+), 12 deletions(-) -- 2.31.1
