* [PATCH 0/2] net/virtio: vhost-vdpa fixes @ 2024-03-12 10:48 Maxime Coquelin 2024-03-12 10:48 ` [PATCH 1/2] net/virtio: fix vDPA device init advertising control queue Maxime Coquelin 2024-03-12 10:48 ` [PATCH 2/2] net/virtio: fix notification area initialization Maxime Coquelin 0 siblings, 2 replies; 5+ messages in thread From: Maxime Coquelin @ 2024-03-12 10:48 UTC (permalink / raw) To: dev, david.marchand, chenbox, schalla; +Cc: Maxime Coquelin While investigating vhost-vdpa intialization issue with mlx5 vDPA, we found two issues fixed by following patches. Note we still see issue with the control queue, the virtio_user driver gets stuck while waiting for a control queue message reply. This is being investigated, but I wonder whether it is reproduced on Marvell vDPA device? Maxime Coquelin (2): net/virtio: fix vDPA device init advertising control queue net/virtio: fix notification area initialization drivers/net/virtio/virtio_user/virtio_user_dev.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) -- 2.44.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] net/virtio: fix vDPA device init advertising control queue 2024-03-12 10:48 [PATCH 0/2] net/virtio: vhost-vdpa fixes Maxime Coquelin @ 2024-03-12 10:48 ` Maxime Coquelin 2024-03-12 14:10 ` David Marchand 2024-03-12 10:48 ` [PATCH 2/2] net/virtio: fix notification area initialization Maxime Coquelin 1 sibling, 1 reply; 5+ messages in thread From: Maxime Coquelin @ 2024-03-12 10:48 UTC (permalink / raw) To: dev, david.marchand, chenbox, schalla; +Cc: Maxime Coquelin, stable If the vDPA device advertises control queue support, but the user neither passes "cq=1" as devarg nor requests multiple queues, the initialization fails because the driver tries to setup the control queue without negotiating related feature. This patch enables the control queue at driver level as soon as the device claims to support it, and not only when multiple queue pairs are requested. Fixes: b277308e8868 ("net/virtio-user: advertise control VQ support with vDPA") Cc: stable@dpdk.org Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> --- drivers/net/virtio/virtio_user/virtio_user_dev.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c index d395fc1676..0b5db12886 100644 --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c @@ -752,7 +752,7 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, uint16_t queues, if (virtio_user_dev_init_max_queue_pairs(dev, queues)) dev->unsupported_features |= (1ull << VIRTIO_NET_F_MQ); - if (dev->max_queue_pairs > 1) + if (dev->max_queue_pairs > 1 || dev->hw_cvq) cq = 1; if (!mrg_rxbuf) @@ -770,8 +770,9 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, uint16_t queues, dev->unsupported_features |= (1ull << VIRTIO_NET_F_MAC); if (cq) { - /* device does not really need to know anything about CQ, - * so if necessary, we just claim to support CQ + /* Except for vDPA, the device does not really need to know + * anything about CQ, so if necessary, we just claim to support + * control queue. */ dev->frontend_features |= (1ull << VIRTIO_NET_F_CTRL_VQ); } else { -- 2.44.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] net/virtio: fix vDPA device init advertising control queue 2024-03-12 10:48 ` [PATCH 1/2] net/virtio: fix vDPA device init advertising control queue Maxime Coquelin @ 2024-03-12 14:10 ` David Marchand 0 siblings, 0 replies; 5+ messages in thread From: David Marchand @ 2024-03-12 14:10 UTC (permalink / raw) To: Maxime Coquelin; +Cc: dev, chenbox, schalla, stable On Tue, Mar 12, 2024 at 11:48 AM Maxime Coquelin <maxime.coquelin@redhat.com> wrote: > > If the vDPA device advertises control queue support, but > the user neither passes "cq=1" as devarg nor requests > multiple queues, the initialization fails because the > driver tries to setup the control queue without negotiating > related feature. > > This patch enables the control queue at driver level as > soon as the device claims to support it, and not only when > multiple queue pairs are requested. > > Fixes: b277308e8868 ("net/virtio-user: advertise control VQ support with vDPA") > Cc: stable@dpdk.org > > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: David Marchand <david.marchand@redhat.com> -- David Marchand ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] net/virtio: fix notification area initialization 2024-03-12 10:48 [PATCH 0/2] net/virtio: vhost-vdpa fixes Maxime Coquelin 2024-03-12 10:48 ` [PATCH 1/2] net/virtio: fix vDPA device init advertising control queue Maxime Coquelin @ 2024-03-12 10:48 ` Maxime Coquelin 2024-03-12 14:12 ` David Marchand 1 sibling, 1 reply; 5+ messages in thread From: Maxime Coquelin @ 2024-03-12 10:48 UTC (permalink / raw) To: dev, david.marchand, chenbox, schalla; +Cc: Maxime Coquelin Notification area is a Virtio feature that require to be negotiated because not all devices support it. Currently, it is tried to be initialized as soon as the backend implements the callback, so it assumes all Vhost-vDPA devices support it. This patch skips calling the notification area map callback if the device does not advertise its support. Fixes: 0fd2782660c8 ("net/virtio-user: support notification area mapping") Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> --- drivers/net/virtio/virtio_user/virtio_user_dev.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c index 0b5db12886..b2e361ef3b 100644 --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c @@ -433,8 +433,9 @@ virtio_user_dev_init_notify(struct virtio_user_dev *dev) dev->kickfds[i] = kickfd; } - if (dev->ops->map_notification_area) - if (dev->ops->map_notification_area(dev)) + if (dev->device_features & (1ULL << VIRTIO_F_NOTIFICATION_DATA)) + if (dev->ops->map_notification_area && + dev->ops->map_notification_area(dev)) goto err; return 0; -- 2.44.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] net/virtio: fix notification area initialization 2024-03-12 10:48 ` [PATCH 2/2] net/virtio: fix notification area initialization Maxime Coquelin @ 2024-03-12 14:12 ` David Marchand 0 siblings, 0 replies; 5+ messages in thread From: David Marchand @ 2024-03-12 14:12 UTC (permalink / raw) To: Maxime Coquelin; +Cc: dev, chenbox, schalla On Tue, Mar 12, 2024 at 11:48 AM Maxime Coquelin <maxime.coquelin@redhat.com> wrote: > > Notification area is a Virtio feature that require to be requires* > negotiated because not all devices support it. Currently, > it is tried to be initialized as soon as the backend > implements the callback, so it assumes all Vhost-vDPA > devices support it. > > This patch skips calling the notification area map callback > if the device does not advertise its support. > > Fixes: 0fd2782660c8 ("net/virtio-user: support notification area mapping") > > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: David Marchand <david.marchand@redhat.com> -- David Marchand ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-03-12 14:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-03-12 10:48 [PATCH 0/2] net/virtio: vhost-vdpa fixes Maxime Coquelin 2024-03-12 10:48 ` [PATCH 1/2] net/virtio: fix vDPA device init advertising control queue Maxime Coquelin 2024-03-12 14:10 ` David Marchand 2024-03-12 10:48 ` [PATCH 2/2] net/virtio: fix notification area initialization Maxime Coquelin 2024-03-12 14:12 ` David Marchand
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).