[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