Thread (24 messages) 24 messages, 3 authors, 2022-06-07

Re: [PATCH 5/6] vDPA: answer num of queue pairs = 1 to userspace when VIRTIO_NET_F_MQ == 0

From: Zhu, Lingshan <hidden>
Date: 2022-06-07 08:41:02


On 6/7/2022 2:14 PM, Jason Wang wrote:
On Mon, Jun 6, 2022 at 4:22 PM Zhu, Lingshan [off-list ref] wrote:
quoted

On 6/2/2022 3:38 PM, Jason Wang wrote:
quoted
On Thu, Jun 2, 2022 at 10:48 AM Zhu Lingshan [off-list ref] wrote:
quoted
If VIRTIO_NET_F_MQ == 0, the virtio device should have one queue pair,
so when userspace querying queue pair numbers, it should return mq=1
than zero
Spec said:

"max_virtqueue_pairs only exists if VIRTIO_NET_F_MQ is set"

So we are probably fine.
I thinks it is asking how many queue
pairs(VDPA_ATTR_DEV_NET_CFG_MAX_VQP), so answering 0 may not be correct.

Thanks,
Zhu Lingshan
Please add the result of the userspace vdpa tool before and after this
patch in the changlog in next version.
sure!
Thanks
quoted
quoted
Thanks
quoted
Signed-off-by: Zhu Lingshan <redacted>
---
   drivers/vdpa/vdpa.c | 5 +++--
   1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c
index 030d96bdeed2..50a11ece603e 100644
--- a/drivers/vdpa/vdpa.c
+++ b/drivers/vdpa/vdpa.c
@@ -818,9 +818,10 @@ static int vdpa_dev_net_mq_config_fill(struct vdpa_device *vdev,
          u16 val_u16;

          if ((features & BIT_ULL(VIRTIO_NET_F_MQ)) == 0)
-               return 0;
+               val_u16 = 1;
+       else
+               val_u16 = le16_to_cpu((__force __le16)config->max_virtqueue_pairs);

-       val_u16 = le16_to_cpu(config->max_virtqueue_pairs);
          return nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MAX_VQP, val_u16);
   }

--
2.31.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help