Hi,

On 3/26/25 5:36 PM, Eugenio Perez Martin wrote:
On Mon, Mar 24, 2025 at 3:00 PM Sahil Siddiq <icegambi...@gmail.com> wrote:

Validate transport device features required for utilizing packed SVQ
that both guests can use with the SVQ and SVQs can use with vdpa.

Signed-off-by: Sahil Siddiq <sahil...@proton.me>
---
Changes from v4 -> v5:
- Split from commit #2 in v4.

  hw/virtio/vhost-shadow-virtqueue.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/hw/virtio/vhost-shadow-virtqueue.c 
b/hw/virtio/vhost-shadow-virtqueue.c
index 8430b3c94a..035ab1e66f 100644
--- a/hw/virtio/vhost-shadow-virtqueue.c
+++ b/hw/virtio/vhost-shadow-virtqueue.c
@@ -33,6 +33,9 @@ bool vhost_svq_valid_features(uint64_t features, Error **errp)
           ++b) {
          switch (b) {
          case VIRTIO_F_ANY_LAYOUT:
+        case VIRTIO_F_RING_PACKED:
+        case VIRTIO_F_RING_RESET:
+        case VIRTIO_RING_F_INDIRECT_DESC:

This should only enable _F_RING_PACKED, there is no code supporting
either reset or indirect descriptors.


Without _F_RING_RESET and _RING_F_INDIRECT_DESC, I get the following error:

qemu-system-x86_64: -netdev 
type=vhost-vdpa,vhostdev=/dev/vhost-vdpa-0,x-svq=true,id=vhost-vdpa0: SVQ 
Invalid device feature flags, offer: 0x1071011ffa7, ok: 0x70011ffa7

Evaluating 0x1071011ffa7 & ~0x70011ffa7 gives me 0x10010000000 as the
set of invalid features. This corresponds to _F_RING_RESET (1 << 40)
and _RING_F_INDIRECT_DESC (1 << 28) [1].

I get this error when x-svq=true irrespective of whether split vqs or packed
vqs are used.

Is there a way to turn them off in the QEMU command?

Thanks,
Sahil

[1] 
https://gitlab.com/qemu-project/qemu/-/blob/master/include/standard-headers/linux/virtio_config.h

Reply via email to