On Tue, Jun 09, 2020 at 06:02:11PM +0100, Stefan Hajnoczi wrote: > v2: > * Add libvhost-user VHOST_USER_GET_FEATURES patch to start reporting feature > bits correctly (already reviewed by Marc-André Lureau) > * Rephrase doc comments and drop vhost_get_default_features() [Jason] > * Simplify hw/core/machine.c compat props by setting packed=off on the > virtio-dev base class [Jason] > > The VIRTIO 1.1 packed virtqueue layout improves performance and guest driver > support has been available since Linux v5.0. virtio-blk benchmarks show it is > beneficial for non-net devices too so I wrote patches to enable it for all > devices.
It's exciting that it's widely useful! Could you include some numbers please though? No need to be exhaustive ... > It turned out to be trickier than I expected because vhost feature negotiation > is currently not ready for new virtqueue feature bits like > VIRTIO_F_RING_PACKED. > > Patch 1 fixes libqos. Patch 2 fixes libvhost-user. Patch 3 adds clarifications > to the vhost-user specification. Patches 4-6 solve the vhost feature issues in > QEMU. Finally, Patch 6 enables packed virtqueues. > > Stefan Hajnoczi (7): > tests/libqos: mask out VIRTIO_F_RING_PACKED for now > libvhost-user: advertise vring features > docs: document non-net VHOST_USER_GET_FEATURES behavior > vhost: involve device backends in feature negotiation > vhost-user-blk: add VIRTIO_F_RING_PACKED feature bit > vhost-scsi: add VIRTIO_F_VERSION_1 and VIRTIO_F_RING_PACKED > virtio: enable VIRTIO_F_RING_PACKED for all devices > > include/hw/virtio/vhost.h | 1 + > include/hw/virtio/virtio-gpu.h | 2 ++ > include/hw/virtio/virtio.h | 2 +- > include/sysemu/cryptodev-vhost.h | 11 +++++++++++ > backends/cryptodev-vhost.c | 21 +++++++++++++++++++++ > contrib/libvhost-user/libvhost-user.c | 10 ++++++++++ > contrib/vhost-user-blk/vhost-user-blk.c | 4 +--- > hw/block/vhost-user-blk.c | 1 + > hw/core/machine.c | 4 +++- > hw/display/vhost-user-gpu.c | 18 ++++++++++++++++++ > hw/display/virtio-gpu-base.c | 2 +- > hw/input/vhost-user-input.c | 11 +++++++++++ > hw/scsi/vhost-scsi.c | 2 ++ > hw/scsi/vhost-user-scsi.c | 2 ++ > hw/virtio/vhost-user-fs.c | 6 ++++-- > hw/virtio/vhost-vsock.c | 7 +++++-- > hw/virtio/vhost.c | 24 ++++++++++++++++++++++++ > hw/virtio/virtio-crypto.c | 3 ++- > tests/qtest/libqos/virtio.c | 3 ++- > docs/interop/vhost-user.rst | 21 +++++++++++++++++++++ > 20 files changed, 143 insertions(+), 12 deletions(-) > > -- > 2.26.2 >