[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