Vhost-User: Implement Indirect Descriptors 06/2106/7
authorPierre Pfister <ppfister@cisco.com>
Wed, 27 Jul 2016 15:38:20 +0000 (16:38 +0100)
committerDamjan Marion <dmarion.lists@gmail.com>
Wed, 7 Sep 2016 17:19:11 +0000 (17:19 +0000)
commitba1d04641454beaae04a6c9ca7146d5f3205068f
tree0cc15d5505a88b426045fd683b03da7d6c01e54d
parent24704851584a2b1db4545a2a3cd3fc73dff2ce5f
Vhost-User: Implement Indirect Descriptors

One of the main issue with virtio is the small queue size.
VPP can quickly fill the queue before Linux could empty it,
resulting in packet losses.
Virtio indirect descriptors double the number of packet
which may fit in the virtio queue (From 128 to 256 with standard qemu
which hardcodes queue size to 256).

Linux will not use such descriptors if the virtio MRG feature is
enabled. You may add mrg_rxbuff=off option to qemu commandline
when starting the VM such as to disable this feature. This way,
Linux will use indirect buffers to receive packets.

But it seems that Linux never uses indirect buffers to send packets.

This patch also includes some optimization modifications.

Change-Id: I26940d41ce6b7e3a08d5516018a8c46c5316ce1c
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
vnet/vnet/devices/virtio/vhost-user.c
vnet/vnet/devices/virtio/vhost-user.h