[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200331180006.25829-1-eperezma@redhat.com>
Date: Tue, 31 Mar 2020 19:59:58 +0200
From: Eugenio Pérez <eperezma@...hat.com>
To: "Michael S. Tsirkin" <mst@...hat.com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Eugenio Pérez <eperezma@...hat.com>,
kvm list <kvm@...r.kernel.org>,
Halil Pasic <pasic@...ux.ibm.com>,
"virtualization@...ts.linux-foundation.org"
<virtualization@...ts.linux-foundation.org>,
Linux Next Mailing List <linux-next@...r.kernel.org>,
Cornelia Huck <cohuck@...hat.com>,
Stephen Rothwell <sfr@...b.auug.org.au>,
Christian Borntraeger <borntraeger@...ibm.com>
Subject: [PATCH v2 0/8] 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.
v2:
* Squashed commits.
* Create vq private_data accesors (mst).
This is meant to be applied on top of
c4f1c41a6094582903c75c0dcfacb453c959d457 in
git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git.
Eugenio Pérez (5):
vhost: Create accessors for virtqueues private_data
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/net.c | 28 ++--
drivers/vhost/test.c | 59 +++++++-
drivers/vhost/test.h | 1 +
drivers/vhost/vhost.c | 271 +++++++++++++++++++++++------------
drivers/vhost/vhost.h | 45 +++++-
drivers/vhost/vsock.c | 14 +-
drivers/virtio/virtio_ring.c | 29 ++++
tools/virtio/linux/virtio.h | 2 +
tools/virtio/virtio_test.c | 123 ++++++++++++++--
9 files changed, 445 insertions(+), 127 deletions(-)
--
2.18.1
Powered by blists - more mailing lists