[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