[ovs-dev] [RFC v2 0/2] Ingress Scheduling

Billy O'Mahony billy.o.mahony at intel.com
Wed Mar 28 22:11:56 UTC 2018


Hi All,

I've updated the original RFC patch to account for two sets of comments. See
below.

I had originally intended to make this a v1 patch but two items are
outstanding:
* further testing needs to be completed to determine the full effect on vports
* re-configuration of the priorities at run-time is not supported in RFCv2

I want to allow re-configuration of the port priorities without calling
netdev_request_reconfigure as that will, I understand, restart the
netdevs and drop packets.  I am thinking that adding the ingress_prio config
smap to ofproto_port_set_config call in bridge_reconfigure and then calling
dp_netdev_reload_pmd__ from dpif_netdev_port_set_config will end up forcing the
pmd to reload_queues_and_ports and giving effect to the new priorities.  But
I'd appreciate guidance on that approach.

Original Description:
This patch set implements the 'preferential read' part of the feature of
ingress scheduling described at OvS 2017 Fall Conference
https://www.slideshare.net/LF_OpenvSwitch/lfovs17ingress-scheduling-82280320.

It allows configuration to specify an ingress priority for an entire
interface. This protects traffic on higher priority interfaces from loss and
latency as PMDs get overloaded.

Results so far a are very promising; For a uniform traffic distribution as
total offered load increases loss starts on the lowest priority port first and
the highest priority port last.

History:

RFCv1:
Initial version.

RFCv2:
* Keep ingress prio config in netdev base rather than in each netdev type.
* Account for differing rxq lengths
* Applies clean to 4299145

Billy O'Mahony (2):
  ingress scheduling: schema and docs
  ingress scheduling: Provide per interface ingress priority

 Documentation/howto/dpdk.rst    |  18 +++++++
 include/openvswitch/ofp-parse.h |   3 ++
 lib/dpif-netdev.c               | 103 +++++++++++++++++++++++++++++++++++-----
 lib/netdev-bsd.c                |   1 +
 lib/netdev-dpdk.c               |  13 ++++-
 lib/netdev-dummy.c              |   1 +
 lib/netdev-linux.c              |   1 +
 lib/netdev-provider.h           |  11 ++++-
 lib/netdev-vport.c              |   1 +
 lib/netdev.c                    |  42 ++++++++++++++++
 lib/netdev.h                    |   2 +
 vswitchd/bridge.c               |   2 +
 vswitchd/vswitch.ovsschema      |   9 +++-
 vswitchd/vswitch.xml            |  40 ++++++++++++++++
 14 files changed, 230 insertions(+), 17 deletions(-)

-- 
2.7.4



More information about the dev mailing list