vhost: support indirect Tx descriptors
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Tue, 27 Sep 2016 08:42:49 +0000 (10:42 +0200)
committerYuanhan Liu <yuanhan.liu@linux.intel.com>
Wed, 28 Sep 2016 00:18:33 +0000 (02:18 +0200)
commit2304dd73d287cc8ce30fdd9abd2f99f6af890dd4
treee90c546fd1ed7b5d310a365c14c7cb8d90a3ed29
parent07c9d24e9d6ad7a4fcc7a0e80e72deda8c35c19a
vhost: support indirect Tx descriptors

Indirect descriptors are usually supported by virtio-net devices,
allowing to dispatch a larger number of requests.

When the virtio device sends a packet using indirect descriptors,
only one slot is used in the ring, even for large packets.

The main effect is to improve the 0% packet loss benchmark.
A PVP benchmark using Moongen (64 bytes) on the TE, and testpmd
(fwd io for host, macswap for VM) on DUT shows a +50% gain for
zero loss.

On the downside, micro-benchmark using testpmd txonly in VM and
rxonly on host shows a loss between 1 and 4%. But depending on
the needs, feature can be disabled at VM boot time by passing
indirect_desc=off argument to vhost-user device in Qemu.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
doc/guides/rel_notes/release_16_11.rst
lib/librte_vhost/vhost.c
lib/librte_vhost/virtio_net.c