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

