Hi All,

> -----Original Message-----
> From: Jan Scheurich [mailto:jan.scheur...@ericsson.com]
> Sent: Thursday, August 17, 2017 5:22 PM
> To: O Mahony, Billy <billy.o.mah...@intel.com>; Kevin Traynor
> <ktray...@redhat.com>; d...@openvswitch.org
> Subject: RE: [ovs-dev] [PATCH 0/4] prioritizing latency sensitive traffic
> 
> Good discussion. Some thoughts:
> 
> 1. Prioritizing queues by assigning them to dedicated PMDs is a simple and
> effective but very crude method, considering that you have to reserve an
> entire (logical) core for that. So I am all for a more economic and perhaps
> slightly less deterministic option!
[[BO'M]] I would agree. I was just drawing attention to the two-part nature of 
the patch. Ie. that it's not dpdk specific as such but comes with a dpdk 
implementation.
> 
> 2. Offering the option to prioritize certain queues in OVS-DPDK is a highly
> desirable feature. We have at least one important use case in OpenStack
> (prioritizing "in-band" infrastructure control plane traffic over tenant 
> data, in
> case both are carried on the same physical network). In our case the traffic
> separation would be done per VLAN. Can we add this to the list of supported
> filters?
[[BO'M]] Good to know about use-cases. I'll dig a bit on that wrt to dpdk 
drivers and hardware.
> 
> 3. It would be nice to be able to combine priority queues with filters with a
> number of RSS queues without filter. Is this a XL710 HW limitation or only a
> limitation of the drivers and DPDK APIs?
[[BO'M]] Again I'll have to dig on this. Our go to guy for this is on vacation 
at the moment. Remind me if I don't get back with a response. 
> 
> BR, Jan
> 
> 
> > From: ovs-dev-boun...@openvswitch.org [mailto:ovs-dev-
> > boun...@openvswitch.org] On Behalf Of O Mahony, Billy
> > Sent: Thursday, 17 August, 2017 18:07
> > To: Kevin Traynor <ktray...@redhat.com>; d...@openvswitch.org
> > Subject: Re: [ovs-dev] [PATCH 0/4] prioritizing latency sensitive
> > traffic
> >
> > Hi Kevin,
> >
> > Thanks for the comments - more inline.
> >
> > Billy.
> >
> > > -----Original Message-----
> > > From: Kevin Traynor [mailto:ktray...@redhat.com]
> > > Sent: Thursday, August 17, 2017 3:37 PM
> > > To: O Mahony, Billy <billy.o.mah...@intel.com>; d...@openvswitch.org
> > > Subject: Re: [ovs-dev] [PATCH 0/4] prioritizing latency sensitive
> > > traffic
> > >
> > > Hi Billy,
> > >
> > > I just happened to be about to send a reply to the previous
> > > patchset, so adding comments here instead.
> > >
> > > On 08/17/2017 03:24 PM, Billy O'Mahony wrote:
> > > > 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.htm
> > > > l
> > > > and RFC'd
> > > > https://mail.openvswitch.org/pipermail/ovs-dev/2017-July/335237.ht
> > > > ml
> > > >
> > > > 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
> > > >
> > >
> > > In general I like the idea of splitting priority traffic to a
> > > specific queue but I have concerns about the implementation. I
> > > shared most of these when we met already but adding here too. Not a
> detailed review.
> > [[BO'M]] No worries. If we get the high-level sorted out first the
> > details will fall into place :)
> > >
> > > - It is using deprecated DPDK filter API.
> > > http://dpdk.org/doc/guides/rel_notes/deprecation.html
> > [[BO'M]] Yes it looks like a move to the shiny new Flow API is in order.
> > >
> > > - It is an invasive change that seems to be for only one Intel NIC
> > > in the DPDK datapath. Even then it is very limited as it only works
> > > when that Intel NIC is using exactly 2 rx queues.
> > [[BO'M]] That's the current case but is really a limitation of
> > FlowDirectorAPI/DPDK/XL710 combination. Maybe Flow API will allow to
> > RSS over many queues and place the prioritized traffic on another queue.
> > >
> > > - It's a hardcoded opaque QoS which will have a negative impact on
> > > whichever queues happen to land on the same pmd so it's
> > > unpredictable which queues will be affected. It could effect other
> > > latency sensitive traffic that cannot by prioritized because of the
> limitations above.
> > >
> > > - I guess multiple priority queues could land on the same pmd and
> > > starve each other?
> > [[BO'M]] Interaction with pmd assignment is definitely an issue that
> > needs to be addressed. I know there is work in-flight in that regard
> > so it will be easier to address that when the in-flight work lands.
> > >
> > > I think a more general, less restricted scheme using DPDK rte_flow
> > > API with controls on the effects to other traffic is needed. Perhaps
> > > if a user is very concerned with latency on traffic from a port,
> > > they would be ok with dedicating a pmd to it.
> > [[BO'M]] You are proposing to prioritize queues by allocating a single
> > pmd to them rather than by changing the pmds read algorithm to favor
> > prioritized queues? For sure that could be another implementation of
> > the solution.
> >
> > If we look at the patch set as containing two distinct things as per
> > the cover letter "the patch set provides a method to request ingress
> > scheduling on interfaces. It also provides an implementation of same
> > for DPDK physical ports." Then this would change the second part put
> > the first would be still valid. Each port type in any case would have
> > to come up with it's own implementation - it's just for non-physical
> > ports than cannot offload the prioritization decision it not worth the
> > effort - as was noted in an earlier RFC.
> >
> > >
> > > thanks,
> > > Kevin.
> > >
> > > > 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(-)
> > > >
> >
> > _______________________________________________
> > dev mailing list
> > d...@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to