At this moment the migration of net features that depends on CVQ is not possible, as there is no reliable way to restore the device state like mac address, number of enabled queues, etc to the destination. This is mainly caused because the device must only read CVQ, and process all the commands before resuming the dataplane.
This RFC lift that requirement, sending the VHOST_VDPA_SET_VRING_ENABLE ioctl for dataplane vqs only after the device has processed all commands. If this method is valid or not, or if it must be signalled by the parent driver somehow, is still under discussion. In case it is valid, this code allows testing the vDPA device for it. Eugenio Pérez (6): vdpa: export vhost_vdpa_set_vring_ready vdpa: add should_enable op vdpa: use virtio_ops->should_enable at vhost_vdpa_set_vrings_ready vdpa: add stub vhost_vdpa_should_enable vdpa: delay enable of data vqs vdpa: remove net cvq migration blocker include/hw/virtio/vhost-vdpa.h | 9 +++++++ hw/virtio/vhost-vdpa.c | 33 +++++++++++++++++++------ net/vhost-vdpa.c | 45 +++++++++++++++++++++++++--------- hw/virtio/trace-events | 2 +- 4 files changed, 68 insertions(+), 21 deletions(-) -- 2.39.3
