This series introduces a new VDUSE message for VDUSE userland instance to
detect when a VirtQueue (VQ) is enabled, replacing the polling.

VirtIO net devices' dataplane is started after the control virtqueue so QEMU
can apply the configuration in the destination of a Live Migration. Without
this feature, the VDUSE instance must poll the VQs to check when (and if) a VQ
has been enabled.

This series also implements VDUSE feature flags allowing the VDUSE devices to
opt-in to the VQ ready message.  Devices that opt-in to this feature will
receive explicit notifications when a VQ is ready. Devices that do not set this
flag remain unaffected, ensuring backward compatibility without indefinitely
incrementing API versions.

The VDUSE features is a 64 bit bitmap for simplicity, the same way as vhost and
vhost-net started.  It can be extended as a flexible array of bits when we
reach so many features, but it seems unlikely at this point.

This series depends on
https://lore.kernel.org/lkml/[email protected]/

Eugenio Pérez (6):
  vduse: ensure vq->ready access is smp safe
  vduse: store control device pointer
  vduse: Add API v2 definition
  vduse: add VDUSE_GET_FEATURES ioctl
  vduse: add F_QUEUE_READY feature
  vduse: advertise API V2 support

 drivers/vdpa/vdpa_user/vduse_dev.c | 100 +++++++++++++++++++++++++----
 include/uapi/linux/vduse.h         |  30 ++++++++-
 2 files changed, 115 insertions(+), 15 deletions(-)

-- 
2.52.0


Reply via email to