[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/7] virtio: enable VIRTIO_F_RING_PACKED for all devices
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH v2 0/7] virtio: enable VIRTIO_F_RING_PACKED for all devices |
Date: |
Wed, 10 Jun 2020 01:02:57 -0400 |
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
>