virtio-net: add feature bit for any header s/g

Enterprise / Virtualization / QEMU - Michael S. Tsirkin [redhat.com] - 15 July 2013 13:26 UTC

Old qemu versions required that 1st s/g entry is the header.

Since QEMU 1.5, patchset titled "virtio-net: iovec handling cleanup" removed this limitation but a feature bit is needed so guests know it's safe to lay out header differently.

This patch applies on top and adds such a feature bit to QEMU. It is set by default for virtio-net.
virtio net header inline with the data is beneficial for latency and small packet bandwidth - guest driver code utilizing this feature has been acked but missed 3.11 by a narrow margin, it's pending for 3.12.

This feature bit is cleared by default when compatibility with old machine types is requested.

Other performance-sensitive devices (blk and scsi) don't yet support arbitrary s/g layouts, so we only set this bit for virtio-net for now. There are plans to allow arbitrary layouts there, but no code has been posted yet.

Cc: Rusty Russell

488f069 virtio-net: add feature bit for any header s/g
include/hw/i386/pc.h | 4 ++++
include/hw/virtio/virtio-net.h | 1 +
include/hw/virtio/virtio.h | 2 ++
3 files changed, 7 insertions(+)

Upstream: git.qemu.org


  • Share