[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200401183118.8334-1-eperezma@redhat.com>
Date: Wed, 1 Apr 2020 20:31:11 +0200
From: Eugenio Pérez <eperezma@...hat.com>
To: "Michael S. Tsirkin" <mst@...hat.com>
Cc: "virtualization@...ts.linux-foundation.org"
<virtualization@...ts.linux-foundation.org>,
Eugenio Pérez <eperezma@...hat.com>,
Linux Next Mailing List <linux-next@...r.kernel.org>,
Stephen Rothwell <sfr@...b.auug.org.au>,
kvm list <kvm@...r.kernel.org>,
Halil Pasic <pasic@...ux.ibm.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Cornelia Huck <cohuck@...hat.com>,
Christian Borntraeger <borntraeger@...ibm.com>
Subject: [PATCH v4 0/7] vhost: Reset batched descriptors on SET_VRING_BASE call
Vhost did not reset properly the batched descriptors on SET_VRING_BASE
event. Because of that, is possible to return an invalid descriptor to
the guest.
This series ammend this, resetting them every time backend changes, and
creates a test to assert correct behavior. To do that, they need to
expose a new function in virtio_ring, virtqueue_reset_free_head, only
on test code.
Another useful thing would be to check if mutex is properly get in
vq private_data accessors. Not sure if mutex debug code allow that,
similar to C++ unique lock::owns_lock. Not acquiring in the function
because caller code holds the mutex in order to perform more actions.
v4:
* Rebase with vhost_iotlb changes.
v3:
* Rename accesors functions.
* Make scsi and test use the accesors too.
v2:
* Squashed commits.
* Create vq private_data accesors (mst).
This serie is meant to be applied on top of
38dd2ba72ece18ec8398c8ddd13cfb02870b0309 in
git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git.
Eugenio Pérez (4):
tools/virtio: Add --batch option
tools/virtio: Add --batch=random option
tools/virtio: Add --reset=random
tools/virtio: Make --reset reset ring idx
Michael S. Tsirkin (3):
vhost: option to fetch descriptors through an independent struct
vhost: use batched version by default
vhost: batching fetches
drivers/vhost/test.c | 59 +++++++-
drivers/vhost/test.h | 1 +
drivers/vhost/vhost.c | 271 +++++++++++++++++++++++------------
drivers/vhost/vhost.h | 17 ++-
drivers/virtio/virtio_ring.c | 29 ++++
tools/virtio/linux/virtio.h | 2 +
tools/virtio/virtio_test.c | 123 ++++++++++++++--
7 files changed, 395 insertions(+), 107 deletions(-)
--
2.18.1
Powered by blists - more mailing lists