[ovs-dev] [RFC v2 0/4] prioritizing latency sensitive traffic
Billy O'Mahony
billy.o.mahony at intel.com
Tue Jul 11 16:58:29 UTC 2017
Hi All,
rather than waiting for more polished PATCH v1 next week as I suggested this
morning please find v2 RFC patchset updated with documentation changes and also
some results from testing with this patchset.
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)
The patch works for the supported field types but should not be considered
complete - at this stage I'd like to get an idea if people agree with
general layout of the implementation.
With this patchset prioritized ingress scheduling can be achieved based on:
* eth_type
* src & dst ip and port numbers for UDP & TCP packets
The patch uses Flow Director filter API in DPDK and has only been tested on a
Fortville (XL710) NIC.
This is RFC so there are things it does not take into account:
* reconfiguration - of the ingress_sched config of pmd masks and so on.
* ovs-appctl dpif-netdev/pmd-*-show o/p should indicate rxq prioritization.
* any requirements for a more granular prioritization mechanism
* ...
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 | 24 ++++++-
lib/netdev-bsd.c | 1 +
lib/netdev-dpdk.c | 136 ++++++++++++++++++++++++++++++++++++++++
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 | 2 +
vswitchd/vswitch.xml | 31 +++++++++
13 files changed, 261 insertions(+), 3 deletions(-)
--
2.7.4
More information about the dev
mailing list