Re: [dpdk-dev] [PATCH] vhost: return ready when at least 1 vring is configured
From: Liu, Changpeng <hidden>
Date: 2020-09-21 05:03:16
Hi Maxime,
-----Original Message----- From: Maxime Coquelin <redacted> Sent: Friday, September 18, 2020 5:54 PM To: Liu, Changpeng <redacted>; dev@dpdk.org Cc: matan@mellanox.com; Xia, Chenbo <redacted>; Zawadzki, Tomasz [off-list ref] Subject: Re: [PATCH] vhost: return ready when at least 1 vring is configured Hi Changpeng, On 9/1/20 9:07 AM, Changpeng Liu wrote:quoted
Commit d0fcc38f "vhost: improve device readiness notifications" needs at least 2 vrings before changing the device state to ready, this is fine for NET device but not correct for BLK device. The number of vring required should be based on the device type, e.g. virtio_scsi device needs at least 3 vrings, and virtio_net needs at least 2 vrings, virtio_blk needs at least 1 vring. So instead of doing it in vhost library it's better that the application who uses this library do this check. Signed-off-by: Changpeng Liu <redacted> --- lib/librte_vhost/vhost_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c index c3c924f..4d1883c 100644 --- a/lib/librte_vhost/vhost_user.c +++ b/lib/librte_vhost/vhost_user.c@@ -1343,7 +1343,7 @@ vq->enabled; } -#define VIRTIO_DEV_NUM_VQS_TO_BE_READY 2u +#define VIRTIO_DEV_NUM_VQS_TO_BE_READY 1uI think it would be better to rely on VIRTIO_DEV_BUILTIN_VIRTIO_NET to know whether it should wait for 1 or 2 queues to determine if ready.
virtio_scsi needs at least 3 vrings, so both 1 and 2 can't work for virtio_scsi device. Can we expose an API to let the caller to set the minimum number of vrings required by virtio device?
quoted
static int virtio_is_ready(struct virtio_net *dev)