[ovs-dev] [PATCH 0/4] prioritizing latency sensitive traffic
Billy O'Mahony
billy.o.mahony at intel.com
Thu Aug 17 14:24:03 UTC 2017
Hi All,
v2: Addresses various review comments; Applies cleanly on 0bedb3d6.
This patch set provides a method to request ingress scheduling on interfaces.
It also provides an implemtation of same for DPDK physical ports.
This allows specific packet types to be:
* forwarded to their destination port ahead of other packets.
and/or
* be less likely to be dropped in an overloaded situation.
It was previously discussed
https://mail.openvswitch.org/pipermail/ovs-discuss/2017-May/044395.html
and RFC'd
https://mail.openvswitch.org/pipermail/ovs-dev/2017-July/335237.html
Limitations of this patch:
* The patch uses the Flow Director filter API in DPDK and has only been tested
on Fortville (XL710) NIC.
* Prioritization is limited to:
** eth_type
** Fully specified 5-tuple src & dst ip and port numbers for UDP & TCP packets
* ovs-appctl dpif-netdev/pmd-*-show o/p should indicate rxq prioritization.
* any requirements for a more granular prioritization mechanism
Initial results:
* even when userspace OVS is very much overloaded and
dropping significant numbers of packets the drop rate for prioritized traffic
is running at 1/1000th of the drop rate for non-prioritized traffic.
* the latency profile of prioritized traffic through userspace OVS is also much
improved
1e0 |*
|*
1e-1 |* | Non-prioritized pkt latency
|* * Prioritized pkt latency
1e-2 |*
|*
1e-3 |* |
|* |
1e-4 |* | | |
|* |* | |
1e-5 |* |* | | |
|* |* |* | | |
1e-6 |* |* |* |* | |
|* |* |* |* |* |
1e-7 |* |* |* |* |* |*
|* |* |* |* |* |*
1e-8 |* |* |* |* |* |*
0-1 1-20 20-40 40-50 50-60 60-70 ... 120-400
Latency (us)
Proportion of packets per latency bin @ 80% Max Throughput
(Log scale)
Regards,
Billy.
billy O'Mahony (4):
netdev: Add set_ingress_sched to netdev api
netdev-dpdk: Apply ingress_sched config to dpdk phy ports
dpif-netdev: Add rxq prioritization
docs: Document ingress scheduling feature
Documentation/howto/dpdk.rst | 31 +++++++
include/openvswitch/ofp-parse.h | 3 +
lib/dpif-netdev.c | 25 ++++--
lib/netdev-bsd.c | 1 +
lib/netdev-dpdk.c | 192 +++++++++++++++++++++++++++++++++++++++-
lib/netdev-dummy.c | 1 +
lib/netdev-linux.c | 1 +
lib/netdev-provider.h | 10 +++
lib/netdev-vport.c | 1 +
lib/netdev.c | 22 +++++
lib/netdev.h | 1 +
vswitchd/bridge.c | 4 +
vswitchd/vswitch.xml | 31 +++++++
13 files changed, 315 insertions(+), 8 deletions(-)
--
2.7.4
More information about the dev
mailing list