This series add the tests used to validate the "vhost: Reset batched
descriptors on SET_VRING_BASE call" series, with a small change on the
reset code (delete an extra unneded reset on VHOST_SET_VRING_BASE).
They are based on the tests sent back them, the ones that were not
included (reasons in that thread). This series changes:
* Delete need to export the ugly function in virtio_ring, now all the
code is added in tools/virtio (except the one line fix).
* Add forgotten uses of vhost_vq_set_backend. Fix bad usage order in
vhost_test_set_backend.
* Drop random reset, not really needed.
* Minor changes updating tests code.
This serie is meant to be applied on top of
5de4e0b7068337cf0d4ca48a4011746410115aae in
git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git.
Eugenio Pérez (8):
tools/virtio: fix virtio_test.c indentation
vhost: Not cleaning batched descs in VHOST_SET_VRING_BASE ioctl
vhost: Replace vq->private_data access by backend accesors
vhost: Fix bad order in vhost_test_set_backend at enable
tools/virtio: Use __vring_new_virtqueue in virtio_test.c
tools/virtio: Extract virtqueue initialization in vq_reset
tools/virtio: Reset index in virtio_test --reset.
tools/virtio: Use tools/include/list.h instead of stubs
drivers/vhost/test.c | 8 ++---
drivers/vhost/vhost.c | 1 -
tools/virtio/linux/kernel.h | 7 +----
tools/virtio/linux/virtio.h | 5 ++--
tools/virtio/virtio_test.c | 58 +++++++++++++++++++++++++++----------
tools/virtio/vringh_test.c | 2 ++
6 files changed, 51 insertions(+), 30 deletions(-)
--
2.18.1
As updated in 2a2d1382fe9d
---
tools/virtio/virtio_test.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/tools/virtio/virtio_test.c b/tools/virtio/virtio_test.c
index 38aa5316b266..9b730434997c 100644
--- a/tools/virtio/virtio_test.c
+++ b/tools/virtio/virtio_test.c
@@ -106,10 +106,9 @@ static void vq_info_add(struct vdev_info *dev, int num)
assert(r >= 0);
memset(info->ring, 0, vring_size(num, 4096));
vring_init(&info->vring, num, info->ring, 4096);
- info->vq = vring_new_virtqueue(info->idx,
- info->vring.num, 4096, &dev->vdev,
- true, false, info->ring,
- vq_notify, vq_callback, "test");
+ info->vq =
+ __vring_new_virtqueue(info->idx, info->vring, &dev->vdev, true,
+ false, vq_notify, vq_callback, "test");
assert(info->vq);
info->vq->priv = info;
vhost_vq_setup(dev, info);
--
2.18.1
---
tools/virtio/virtio_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virtio/virtio_test.c b/tools/virtio/virtio_test.c
index 93d81cd64ba0..38aa5316b266 100644
--- a/tools/virtio/virtio_test.c
+++ b/tools/virtio/virtio_test.c
@@ -222,7 +222,7 @@ static void run_test(struct vdev_info *dev, struct vq_info *vq,
&backend);
assert(!r);
- while (completed > next_reset)
+ while (completed > next_reset)
next_reset += completed;
}
} while (r == 0);
--
2.18.1
Fixes: ("7c48601a3d4d tools/virtio: Add --reset=random")
---
drivers/vhost/test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/vhost/test.c b/drivers/vhost/test.c
index 789c096e454b..6aed0cab8b17 100644
--- a/drivers/vhost/test.c
+++ b/drivers/vhost/test.c
@@ -293,8 +293,8 @@ static long vhost_test_set_backend(struct vhost_test *n, unsigned index, int fd)
backend = vhost_vq_get_backend(vq);
vhost_vq_set_backend(vq, NULL);
} else {
- r = vhost_vq_init_access(vq);
vhost_vq_set_backend(vq, backend);
+ r = vhost_vq_init_access(vq);
if (r == 0)
r = vhost_poll_start(&vq->poll, vq->kick);
}
--
2.18.1
They are cleaned in vhost_vq_set_backend
---
drivers/vhost/vhost.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 0395229486a9..882d0df57e24 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -1579,7 +1579,6 @@ long vhost_vring_ioctl(struct vhost_dev *d, unsigned int ioctl, void __user *arg
vq->last_avail_idx = s.num;
/* Forget the cached index value. */
vq->avail_idx = vq->last_avail_idx;
- vq->ndescs = vq->first_desc = 0;
break;
case VHOST_GET_VRING_BASE:
s.index = idx;
--
2.18.1
On Fri, Apr 03, 2020 at 06:51:11PM +0200, Eugenio P?rez wrote:
> This series add the tests used to validate the "vhost: Reset batched
> descriptors on SET_VRING_BASE call" series, with a small change on the
> reset code (delete an extra unneded reset on VHOST_SET_VRING_BASE).
>
> They are based on the tests sent back them, the ones that were not
> included (reasons in that thread). This series changes:
>
> * Delete need to export the ugly function in virtio_ring, now all the
> code is added in tools/virtio (except the one line fix).
> * Add forgotten uses of vhost_vq_set_backend. Fix bad usage order in
> vhost_test_set_backend.
> * Drop random reset, not really needed.
> * Minor changes updating tests code.
>
> This serie is meant to be applied on top of
> 5de4e0b7068337cf0d4ca48a4011746410115aae in
> git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git.
Is this still needed? The patches lack Signed-off-by and
commit log descriptions, reference commit Ids without subject.
See Documentation/process/submitting-patches.rst
> Eugenio P?rez (8):
> tools/virtio: fix virtio_test.c indentation
> vhost: Not cleaning batched descs in VHOST_SET_VRING_BASE ioctl
> vhost: Replace vq->private_data access by backend accesors
> vhost: Fix bad order in vhost_test_set_backend at enable
> tools/virtio: Use __vring_new_virtqueue in virtio_test.c
> tools/virtio: Extract virtqueue initialization in vq_reset
> tools/virtio: Reset index in virtio_test --reset.
> tools/virtio: Use tools/include/list.h instead of stubs
>
> drivers/vhost/test.c | 8 ++---
> drivers/vhost/vhost.c | 1 -
> tools/virtio/linux/kernel.h | 7 +----
> tools/virtio/linux/virtio.h | 5 ++--
> tools/virtio/virtio_test.c | 58 +++++++++++++++++++++++++++----------
> tools/virtio/vringh_test.c | 2 ++
> 6 files changed, 51 insertions(+), 30 deletions(-)
>
> --
> 2.18.1
On Mon, Apr 13, 2020 at 1:13 PM Michael S. Tsirkin <[email protected]> wrote:
>
> On Fri, Apr 03, 2020 at 06:51:11PM +0200, Eugenio Pérez wrote:
> > This series add the tests used to validate the "vhost: Reset batched
> > descriptors on SET_VRING_BASE call" series, with a small change on the
> > reset code (delete an extra unneded reset on VHOST_SET_VRING_BASE).
> >
> > They are based on the tests sent back them, the ones that were not
> > included (reasons in that thread). This series changes:
> >
> > * Delete need to export the ugly function in virtio_ring, now all the
> > code is added in tools/virtio (except the one line fix).
> > * Add forgotten uses of vhost_vq_set_backend. Fix bad usage order in
> > vhost_test_set_backend.
> > * Drop random reset, not really needed.
> > * Minor changes updating tests code.
> >
> > This serie is meant to be applied on top of
> > 5de4e0b7068337cf0d4ca48a4011746410115aae in
> > git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git.
>
> Is this still needed?
("tools/virtio: fix virtio_test.c") indentation is actually cosmetic.
("vhost: Not cleaning batched descs in VHOST_SET_VRING_BASE ioctl")
just avoid to clean batches descriptors for a third time (they are
cleaned on backend removal and addition).
("vhost: Fix bad order in vhost_test_set_backend at enable") is
actually a fix, the test does not work properly without it. And
("tools/virtio: Reset index in virtio_test --reset.") Makes the test
work more similar than the actual VM does in a reset.
("tools/virtio: Use __vring_new_virtqueue in virtio_test.c") and
("tools/virtio: Extract virtqueue initialization in vq_reset") are
convenience commits to reach the previous two.
Lastly, ("tools/virtio: Use tools/include/list.h instead of stubs")
just removes stub code, I did it when I try to test vdpa code and it
seems to me a nice to have, but we can drop it from the patchset if
you don't see that way.
> The patches lack Signed-off-by and
> commit log descriptions, reference commit Ids without subject.
> See Documentation/process/submitting-patches.rst
>
Sorry, I will try to keep an eye on that from now on. I will send a v2
with Signed-off-by and extended descriptions if you see it ok.
Thanks!
> > Eugenio Pérez (8):
> > tools/virtio: fix virtio_test.c indentation
> > vhost: Not cleaning batched descs in VHOST_SET_VRING_BASE ioctl
> > vhost: Replace vq->private_data access by backend accesors
> > vhost: Fix bad order in vhost_test_set_backend at enable
> > tools/virtio: Use __vring_new_virtqueue in virtio_test.c
> > tools/virtio: Extract virtqueue initialization in vq_reset
> > tools/virtio: Reset index in virtio_test --reset.
> > tools/virtio: Use tools/include/list.h instead of stubs
> >
> > drivers/vhost/test.c | 8 ++---
> > drivers/vhost/vhost.c | 1 -
> > tools/virtio/linux/kernel.h | 7 +----
> > tools/virtio/linux/virtio.h | 5 ++--
> > tools/virtio/virtio_test.c | 58 +++++++++++++++++++++++++++----------
> > tools/virtio/vringh_test.c | 2 ++
> > 6 files changed, 51 insertions(+), 30 deletions(-)
> >
> > --
> > 2.18.1
>
On Mon, Apr 13, 2020 at 04:50:06PM +0200, Eugenio Perez Martin wrote:
> On Mon, Apr 13, 2020 at 1:13 PM Michael S. Tsirkin <[email protected]> wrote:
> >
> > On Fri, Apr 03, 2020 at 06:51:11PM +0200, Eugenio P?rez wrote:
> > > This series add the tests used to validate the "vhost: Reset batched
> > > descriptors on SET_VRING_BASE call" series, with a small change on the
> > > reset code (delete an extra unneded reset on VHOST_SET_VRING_BASE).
> > >
> > > They are based on the tests sent back them, the ones that were not
> > > included (reasons in that thread). This series changes:
> > >
> > > * Delete need to export the ugly function in virtio_ring, now all the
> > > code is added in tools/virtio (except the one line fix).
> > > * Add forgotten uses of vhost_vq_set_backend. Fix bad usage order in
> > > vhost_test_set_backend.
> > > * Drop random reset, not really needed.
> > > * Minor changes updating tests code.
> > >
> > > This serie is meant to be applied on top of
> > > 5de4e0b7068337cf0d4ca48a4011746410115aae in
> > > git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git.
> >
> > Is this still needed?
>
> ("tools/virtio: fix virtio_test.c") indentation is actually cosmetic.
> ("vhost: Not cleaning batched descs in VHOST_SET_VRING_BASE ioctl")
> just avoid to clean batches descriptors for a third time (they are
> cleaned on backend removal and addition).
>
> ("vhost: Fix bad order in vhost_test_set_backend at enable") is
> actually a fix, the test does not work properly without it. And
> ("tools/virtio: Reset index in virtio_test --reset.") Makes the test
> work more similar than the actual VM does in a reset.
>
> ("tools/virtio: Use __vring_new_virtqueue in virtio_test.c") and
> ("tools/virtio: Extract virtqueue initialization in vq_reset") are
> convenience commits to reach the previous two.
>
> Lastly, ("tools/virtio: Use tools/include/list.h instead of stubs")
> just removes stub code, I did it when I try to test vdpa code and it
> seems to me a nice to have, but we can drop it from the patchset if
> you don't see that way.
>
> > The patches lack Signed-off-by and
> > commit log descriptions, reference commit Ids without subject.
> > See Documentation/process/submitting-patches.rst
> >
>
> Sorry, I will try to keep an eye on that from now on. I will send a v2
> with Signed-off-by and extended descriptions if you see it ok.
>
> Thanks!
Sure, pls go ahead.
> > > Eugenio P?rez (8):
> > > tools/virtio: fix virtio_test.c indentation
> > > vhost: Not cleaning batched descs in VHOST_SET_VRING_BASE ioctl
> > > vhost: Replace vq->private_data access by backend accesors
> > > vhost: Fix bad order in vhost_test_set_backend at enable
> > > tools/virtio: Use __vring_new_virtqueue in virtio_test.c
> > > tools/virtio: Extract virtqueue initialization in vq_reset
> > > tools/virtio: Reset index in virtio_test --reset.
> > > tools/virtio: Use tools/include/list.h instead of stubs
> > >
> > > drivers/vhost/test.c | 8 ++---
> > > drivers/vhost/vhost.c | 1 -
> > > tools/virtio/linux/kernel.h | 7 +----
> > > tools/virtio/linux/virtio.h | 5 ++--
> > > tools/virtio/virtio_test.c | 58 +++++++++++++++++++++++++++----------
> > > tools/virtio/vringh_test.c | 2 ++
> > > 6 files changed, 51 insertions(+), 30 deletions(-)
> > >
> > > --
> > > 2.18.1
> >