All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Add queue ready message to VDUSE
@ 2026-02-10  8:25 Eugenio Pérez
  2026-02-10  8:25 ` [PATCH v2 1/5] vduse: store control device pointer Eugenio Pérez
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Eugenio Pérez @ 2026-02-10  8:25 UTC (permalink / raw)
  To: Michael S . Tsirkin
  Cc: Cindy Lu, Jason Wang, Laurent Vivier, Xuan Zhuo, Maxime Coquelin,
	linux-kernel, Yongji Xie, Eugenio Pérez, Stefano Garzarella,
	virtualization

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.

Error cases tested:
* Call VDUSE_GET_FEATURES without get the API VERSION (so API == 0) and
  with API VERSION set to 1 with VDUSE_SET_API_VERSION (-EINVAL returned
  from VDUSE_GET_FEATURES ioctl).
* Try to create a device with config->features different than 0 without
  fetch the api version (so API == 0) and with API_VERSION set to 1
  (-EINVAL returned from VDUSE_CREATE_DEV ioctl).
* Test regular initialization of single queue devices with V2 with and
  without VDUSE_F_QUEUE_READY set in device->config.
* Test expected behavior when VDUSE userland instance returns
  VDUSE_REQ_RESULT_FAILED from VDUSE_SET_VQ_READY message.
* Repeat all the tests with multiqueue devices, by reverting
  56e71885b0349 ("vduse: Temporarily fail if control queue feature requested").

This series depends on
https://lore.kernel.org/lkml/20260119143306.1818855-1-eperezma@redhat.com/

v2:
* Fix comment of vduse_dev_request.vq_ready
* Set vq_ready before sending the message to the VDUSE userland
  instance, avoiding the need for SMP sync after receiving the message.
* Return -EINVAL if control ioctl called with version < 2, so userland
  visible reply is kept (Jason).

Eugenio Pérez (5):
  vduse: store control device pointer
  vduse: Add API v2 definition
  vduse: add VDUSE_GET_FEATURES ioctl
  vduse: advertise API V2 support
  vduse: add F_QUEUE_READY feature

 drivers/vdpa/vdpa_user/vduse_dev.c | 66 +++++++++++++++++++++++++++---
 include/uapi/linux/vduse.h         | 29 ++++++++++++-
 2 files changed, 88 insertions(+), 7 deletions(-)

--
2.53.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-03-03  9:40 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-10  8:25 [PATCH v2 0/5] Add queue ready message to VDUSE Eugenio Pérez
2026-02-10  8:25 ` [PATCH v2 1/5] vduse: store control device pointer Eugenio Pérez
2026-02-10  8:25 ` [PATCH v2 2/5] vduse: Add API v2 definition Eugenio Pérez
2026-02-10  8:25 ` [PATCH v2 3/5] vduse: add VDUSE_GET_FEATURES ioctl Eugenio Pérez
2026-02-12  8:06   ` Jason Wang
2026-02-12  8:22     ` Eugenio Perez Martin
2026-02-13  1:25       ` Jason Wang
2026-02-13  7:39         ` Eugenio Perez Martin
2026-03-03  7:20           ` Jason Wang
2026-03-03  7:33             ` Michael S. Tsirkin
2026-03-03  9:39             ` Eugenio Perez Martin
2026-02-12  9:04     ` Eugenio Perez Martin
2026-02-10  8:25 ` [PATCH v2 4/5] vduse: advertise API V2 support Eugenio Pérez
2026-02-10  8:25 ` [PATCH v2 5/5] vduse: add F_QUEUE_READY feature Eugenio Pérez

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.