* [PATCH 0/3] Follow VirtIO initialization properly at vdpa net cvq isolation probing @ 2023-09-15 17:03 Eugenio Pérez 2023-09-15 17:03 ` [PATCH 1/3] vdpa net: fix error message setting virtio status Eugenio Pérez ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Eugenio Pérez @ 2023-09-15 17:03 UTC (permalink / raw) To: qemu-devel Cc: Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Jason Wang, Lei Yang This series solves a few issues. The most obvious is that the feature set was done previous to ACKNOWLEDGE | DRIVER status bit set. Current vdpa devices are permissive with this, but it is better to follow the standard. Apart from that it fixes two issues reported by Peter Maydell: * Stop probing CVQ isolation if cannot set features (goto missed). * Fix incorrect error message statis "error setting features", while it should say status. Eugenio Pérez (3): vdpa net: fix error message setting virtio status vdpa net: stop probing if cannot set features vdpa net: follow VirtIO initialization properly at cvq isolation probing net/vhost-vdpa.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) -- 2.39.3 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] vdpa net: fix error message setting virtio status 2023-09-15 17:03 [PATCH 0/3] Follow VirtIO initialization properly at vdpa net cvq isolation probing Eugenio Pérez @ 2023-09-15 17:03 ` Eugenio Pérez 2023-09-15 17:05 ` Philippe Mathieu-Daudé 2023-09-18 8:55 ` Jason Wang 2023-09-15 17:03 ` [PATCH 2/3] vdpa net: stop probing if cannot set features Eugenio Pérez 2023-09-15 17:03 ` [PATCH 3/3] vdpa net: follow VirtIO initialization properly at cvq isolation probing Eugenio Pérez 2 siblings, 2 replies; 9+ messages in thread From: Eugenio Pérez @ 2023-09-15 17:03 UTC (permalink / raw) To: qemu-devel Cc: Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Jason Wang, Lei Yang It incorrectly prints "error setting features", probably because a copy paste miss. Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> --- net/vhost-vdpa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 34202ca009..9845e2db9c 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1293,7 +1293,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, r = ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); if (unlikely(r)) { - error_setg_errno(errp, -r, "Cannot set device features"); + error_setg_errno(errp, -r, "Cannot set status"); goto out; } -- 2.39.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] vdpa net: fix error message setting virtio status 2023-09-15 17:03 ` [PATCH 1/3] vdpa net: fix error message setting virtio status Eugenio Pérez @ 2023-09-15 17:05 ` Philippe Mathieu-Daudé 2023-09-18 8:55 ` Jason Wang 1 sibling, 0 replies; 9+ messages in thread From: Philippe Mathieu-Daudé @ 2023-09-15 17:05 UTC (permalink / raw) To: Eugenio Pérez, qemu-devel Cc: Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Jason Wang, Lei Yang On 15/9/23 19:03, Eugenio Pérez wrote: > It incorrectly prints "error setting features", probably because a copy > paste miss. > > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > --- > net/vhost-vdpa.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] vdpa net: fix error message setting virtio status 2023-09-15 17:03 ` [PATCH 1/3] vdpa net: fix error message setting virtio status Eugenio Pérez 2023-09-15 17:05 ` Philippe Mathieu-Daudé @ 2023-09-18 8:55 ` Jason Wang 1 sibling, 0 replies; 9+ messages in thread From: Jason Wang @ 2023-09-18 8:55 UTC (permalink / raw) To: Eugenio Pérez Cc: qemu-devel, Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Lei Yang On Sat, Sep 16, 2023 at 1:03 AM Eugenio Pérez <eperezma@redhat.com> wrote: > > It incorrectly prints "error setting features", probably because a copy > paste miss. > > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Thanks > --- > net/vhost-vdpa.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index 34202ca009..9845e2db9c 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -1293,7 +1293,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, > > r = ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); > if (unlikely(r)) { > - error_setg_errno(errp, -r, "Cannot set device features"); > + error_setg_errno(errp, -r, "Cannot set status"); > goto out; > } > > -- > 2.39.3 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] vdpa net: stop probing if cannot set features 2023-09-15 17:03 [PATCH 0/3] Follow VirtIO initialization properly at vdpa net cvq isolation probing Eugenio Pérez 2023-09-15 17:03 ` [PATCH 1/3] vdpa net: fix error message setting virtio status Eugenio Pérez @ 2023-09-15 17:03 ` Eugenio Pérez 2023-09-15 17:07 ` Philippe Mathieu-Daudé 2023-09-18 8:55 ` Jason Wang 2023-09-15 17:03 ` [PATCH 3/3] vdpa net: follow VirtIO initialization properly at cvq isolation probing Eugenio Pérez 2 siblings, 2 replies; 9+ messages in thread From: Eugenio Pérez @ 2023-09-15 17:03 UTC (permalink / raw) To: qemu-devel Cc: Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Jason Wang, Lei Yang Otherwise it continues the CVQ isolation probing. Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> --- net/vhost-vdpa.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 9845e2db9c..51d8144070 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1289,6 +1289,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, r = ioctl(device_fd, VHOST_SET_FEATURES, &features); if (unlikely(r)) { error_setg_errno(errp, errno, "Cannot set features"); + goto out; } r = ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); -- 2.39.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] vdpa net: stop probing if cannot set features 2023-09-15 17:03 ` [PATCH 2/3] vdpa net: stop probing if cannot set features Eugenio Pérez @ 2023-09-15 17:07 ` Philippe Mathieu-Daudé 2023-09-18 8:55 ` Jason Wang 1 sibling, 0 replies; 9+ messages in thread From: Philippe Mathieu-Daudé @ 2023-09-15 17:07 UTC (permalink / raw) To: Eugenio Pérez, qemu-devel Cc: Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Jason Wang, Lei Yang On 15/9/23 19:03, Eugenio Pérez wrote: > Otherwise it continues the CVQ isolation probing. > Fixes: 152128d646 ("vdpa: move CVQ isolation check to net_init_vhost_vdpa") Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > --- > net/vhost-vdpa.c | 1 + > 1 file changed, 1 insertion(+) ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] vdpa net: stop probing if cannot set features 2023-09-15 17:03 ` [PATCH 2/3] vdpa net: stop probing if cannot set features Eugenio Pérez 2023-09-15 17:07 ` Philippe Mathieu-Daudé @ 2023-09-18 8:55 ` Jason Wang 1 sibling, 0 replies; 9+ messages in thread From: Jason Wang @ 2023-09-18 8:55 UTC (permalink / raw) To: Eugenio Pérez Cc: qemu-devel, Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Lei Yang On Sat, Sep 16, 2023 at 1:03 AM Eugenio Pérez <eperezma@redhat.com> wrote: > > Otherwise it continues the CVQ isolation probing. > > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Thanks > --- > net/vhost-vdpa.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index 9845e2db9c..51d8144070 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -1289,6 +1289,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, > r = ioctl(device_fd, VHOST_SET_FEATURES, &features); > if (unlikely(r)) { > error_setg_errno(errp, errno, "Cannot set features"); > + goto out; > } > > r = ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); > -- > 2.39.3 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/3] vdpa net: follow VirtIO initialization properly at cvq isolation probing 2023-09-15 17:03 [PATCH 0/3] Follow VirtIO initialization properly at vdpa net cvq isolation probing Eugenio Pérez 2023-09-15 17:03 ` [PATCH 1/3] vdpa net: fix error message setting virtio status Eugenio Pérez 2023-09-15 17:03 ` [PATCH 2/3] vdpa net: stop probing if cannot set features Eugenio Pérez @ 2023-09-15 17:03 ` Eugenio Pérez 2023-09-18 8:56 ` Jason Wang 2 siblings, 1 reply; 9+ messages in thread From: Eugenio Pérez @ 2023-09-15 17:03 UTC (permalink / raw) To: qemu-devel Cc: Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Jason Wang, Lei Yang This patch solves a few issues. The most obvious is that the feature set was done previous to ACKNOWLEDGE | DRIVER status bit set. Current vdpa devices are permissive with this, but it is better to follow the standard. Signed-off-by: Eugenio Pérez <eperezma@redhat.com> --- net/vhost-vdpa.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 51d8144070..4b30325977 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -1270,8 +1270,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, uint64_t backend_features; int64_t cvq_group; uint8_t status = VIRTIO_CONFIG_S_ACKNOWLEDGE | - VIRTIO_CONFIG_S_DRIVER | - VIRTIO_CONFIG_S_FEATURES_OK; + VIRTIO_CONFIG_S_DRIVER; int r; ERRP_GUARD(); @@ -1286,15 +1285,22 @@ static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, return 0; } + r = ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); + if (unlikely(r)) { + error_setg_errno(errp, -r, "Cannot set device status"); + goto out; + } + r = ioctl(device_fd, VHOST_SET_FEATURES, &features); if (unlikely(r)) { - error_setg_errno(errp, errno, "Cannot set features"); + error_setg_errno(errp, -r, "Cannot set features"); goto out; } + status |= VIRTIO_CONFIG_S_FEATURES_OK; r = ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); if (unlikely(r)) { - error_setg_errno(errp, -r, "Cannot set status"); + error_setg_errno(errp, -r, "Cannot set device status"); goto out; } -- 2.39.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] vdpa net: follow VirtIO initialization properly at cvq isolation probing 2023-09-15 17:03 ` [PATCH 3/3] vdpa net: follow VirtIO initialization properly at cvq isolation probing Eugenio Pérez @ 2023-09-18 8:56 ` Jason Wang 0 siblings, 0 replies; 9+ messages in thread From: Jason Wang @ 2023-09-18 8:56 UTC (permalink / raw) To: Eugenio Pérez Cc: qemu-devel, Michael S. Tsirkin, Hawkins Jiawei, si-wei.liu, Lei Yang On Sat, Sep 16, 2023 at 1:03 AM Eugenio Pérez <eperezma@redhat.com> wrote: > > This patch solves a few issues. The most obvious is that the feature > set was done previous to ACKNOWLEDGE | DRIVER status bit set. Current > vdpa devices are permissive with this, but it is better to follow the > standard. > > Signed-off-by: Eugenio Pérez <eperezma@redhat.com> > --- > net/vhost-vdpa.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index 51d8144070..4b30325977 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -1270,8 +1270,7 @@ static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, > uint64_t backend_features; > int64_t cvq_group; > uint8_t status = VIRTIO_CONFIG_S_ACKNOWLEDGE | > - VIRTIO_CONFIG_S_DRIVER | > - VIRTIO_CONFIG_S_FEATURES_OK; > + VIRTIO_CONFIG_S_DRIVER; > int r; > > ERRP_GUARD(); > @@ -1286,15 +1285,22 @@ static int vhost_vdpa_probe_cvq_isolation(int device_fd, uint64_t features, > return 0; > } > > + r = ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); > + if (unlikely(r)) { > + error_setg_errno(errp, -r, "Cannot set device status"); > + goto out; > + } > + > r = ioctl(device_fd, VHOST_SET_FEATURES, &features); > if (unlikely(r)) { > - error_setg_errno(errp, errno, "Cannot set features"); > + error_setg_errno(errp, -r, "Cannot set features"); > goto out; > } > Spec requires a re-read ? " Re-read device status to ensure the FEATURES_OK bit is still set: otherwise, the device does not support our subset of features and the device is unusable. " Thanks > + status |= VIRTIO_CONFIG_S_FEATURES_OK; > r = ioctl(device_fd, VHOST_VDPA_SET_STATUS, &status); > if (unlikely(r)) { > - error_setg_errno(errp, -r, "Cannot set status"); > + error_setg_errno(errp, -r, "Cannot set device status"); > goto out; > } > > -- > 2.39.3 > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-09-18 8:57 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-09-15 17:03 [PATCH 0/3] Follow VirtIO initialization properly at vdpa net cvq isolation probing Eugenio Pérez 2023-09-15 17:03 ` [PATCH 1/3] vdpa net: fix error message setting virtio status Eugenio Pérez 2023-09-15 17:05 ` Philippe Mathieu-Daudé 2023-09-18 8:55 ` Jason Wang 2023-09-15 17:03 ` [PATCH 2/3] vdpa net: stop probing if cannot set features Eugenio Pérez 2023-09-15 17:07 ` Philippe Mathieu-Daudé 2023-09-18 8:55 ` Jason Wang 2023-09-15 17:03 ` [PATCH 3/3] vdpa net: follow VirtIO initialization properly at cvq isolation probing Eugenio Pérez 2023-09-18 8:56 ` Jason Wang
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).