* [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
* [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
* [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 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 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 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
* 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
* 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).