[PATCH 0/5] virtio: enable VIRTIO_F_RING_PACKED for all devices

Stefan Hajnoczi posted 5 patches 1 week ago
Test docker-mingw@fedora passed
Test checkpatch passed
Test asan passed
Test docker-quick@centos7 passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200522171726.648279-1-stefanha@redhat.com
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       | 19 +++++++++++++++++++
hw/block/vhost-user-blk.c        |  1 +
hw/core/machine.c                | 18 +++++++++++++++++-
hw/display/vhost-user-gpu.c      | 17 +++++++++++++++++
hw/display/virtio-gpu-base.c     |  2 +-
hw/input/vhost-user-input.c      |  9 +++++++++
hw/scsi/vhost-scsi.c             |  2 ++
hw/scsi/vhost-user-scsi.c        |  2 ++
hw/virtio/vhost-user-fs.c        |  5 +++--
hw/virtio/vhost-vsock.c          |  5 +++--
hw/virtio/vhost.c                | 22 ++++++++++++++++++++++
hw/virtio/virtio-crypto.c        |  3 ++-
tests/qtest/libqos/virtio.c      |  3 ++-
17 files changed, 115 insertions(+), 9 deletions(-)

[PATCH 0/5] virtio: enable VIRTIO_F_RING_PACKED for all devices

Posted by Stefan Hajnoczi 1 week ago
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 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. Patches 2-4 solve this.

Patch 5 then enables packed virtqueues.

Stefan Hajnoczi (5):
  tests/libqos: mask out VIRTIO_F_RING_PACKED for now
  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       | 19 +++++++++++++++++++
 hw/block/vhost-user-blk.c        |  1 +
 hw/core/machine.c                | 18 +++++++++++++++++-
 hw/display/vhost-user-gpu.c      | 17 +++++++++++++++++
 hw/display/virtio-gpu-base.c     |  2 +-
 hw/input/vhost-user-input.c      |  9 +++++++++
 hw/scsi/vhost-scsi.c             |  2 ++
 hw/scsi/vhost-user-scsi.c        |  2 ++
 hw/virtio/vhost-user-fs.c        |  5 +++--
 hw/virtio/vhost-vsock.c          |  5 +++--
 hw/virtio/vhost.c                | 22 ++++++++++++++++++++++
 hw/virtio/virtio-crypto.c        |  3 ++-
 tests/qtest/libqos/virtio.c      |  3 ++-
 17 files changed, 115 insertions(+), 9 deletions(-)

-- 
2.25.3