[ovs-dev] [PATCH v6 0/2] vHost Dequeue Zero Copy

Ciara Loftus ciara.loftus at intel.com
Fri Dec 15 13:14:00 UTC 2017


This patch enables optional dequeue zero copy for vHost ports.
This gives a performance increase for some use cases. I'm using
the cover letter to report my results.

vhost (vm1) -> vhost (vm2)
Using testpmd to source (txonly) in vm1 and sink (rxonly) in vm2.
4C1Q 64B packets: 5.05Mpps -> 5.52Mpps = 9.2% improvement
256B:    4.69 vs 5.42 Mpps (+~16%)
512B:    4.04 vs 4.90 Mpps (+~21%)
1518B:    2.51 vs 3.05 Mpps (+~22%)

vhost (virtio_user backend 1) -> vhost (virtio_user backend 2)
Using 2 instances of testpmd, each with a virtio_user backend
connected to one of the two vhost ports created in OVS.
2C1Q 1518B packets: 2.59Mpps -> 3.09Mpps = 19.3% improvement

vhost -> phy
Using testpmd to source (txonly) and sink in the NIC
1C1Q 64B packets: 6.81Mpps -> 7.76Mpps = 13.9% improvement

phy -> vhost -> phy
No improvement measured

RFC2544 PVP:
 
NIC-TXD    Virtio-TXD    ZC        Mpps
2048       256           off       2.105
128        256           off       2.162
2048       1024          off       2.455
128        256           on        1.587
512        1024          on        0.321

This feature is experimental and currently requires QEMU < v2.7 until
the following fix in merged into a DPDK release supported by OVS:
http://dpdk.org/dev/patchwork/patch/32198/

v6:
* Note the feature is experimental.
* Mention bug in DPDK & temporary requirement on QEMU < v2.7

v5:
* Rebase to 17.11 patch
* Update docs with warning of potential packet loss
* Update docs with info on NIC & Virtio descriptor values and working
combinations

v4:
* Rebase

v3:
* Documentation updates:
** Style fixes
** Elaborate on expected logs
** Describe how to disable the feature
** Describe NIC descriptors limitation in more detail

v2 changes:
* Mention feature is disabled by default in the documentation
* Add PHY-VM-PHY with vHost dequeue zero copy documentation guide
* Line wrap link to DPDK documentation
* Rename zc_enabled to dq_zc_enabled for future-proofing
* Mention feature is available for both vHost port types in the docs
* In practise, rebooting the VM doesn't always enable the feature if
enabled post-boot, so update the documentation to suggest a shutdown
rather than a reboot. The reason why this doesn't work is probably
because the total downtime during reboot isn't enough to allow a vhost
device unregister & re-register with the new feature, so when the VM
starts again it doesn't pick up the new device as it hasn't been
re-registered in time.

Ciara Loftus (2):
  netdev-dpdk: Helper function for vHost device setup
  netdev-dpdk: Enable optional dequeue zero copy for vHost User

 Documentation/howto/dpdk.rst             |  33 +++++
 Documentation/topics/dpdk/vhost-user.rst |  68 ++++++++++
 NEWS                                     |   2 +
 lib/netdev-dpdk.c                        | 211 +++++++++++++++++++++----------
 vswitchd/vswitch.xml                     |  11 ++
 5 files changed, 258 insertions(+), 67 deletions(-)

-- 
2.7.5



More information about the dev mailing list