On 17/06/2015 14:18, "Traynor, Kevin" <kevin.tray...@intel.com> wrote:
> >> -----Original Message----- >> From: Traynor, Kevin >> Sent: Wednesday, June 17, 2015 10:12 AM >> To: Flavio Leitner; Daniele Di Proietto >> Cc: dev@openvswitch.org; Gray, Mark D >> Subject: RE: [ovs-dev] Is this an issue for DPDK vhost rss? >> >> >> > -----Original Message----- >> > From: Flavio Leitner [mailto:f...@sysclose.org] >> > Sent: Tuesday, June 16, 2015 6:28 PM >> > To: Daniele Di Proietto >> > Cc: Traynor, Kevin; dev@openvswitch.org; Gray, Mark D >> > Subject: Re: [ovs-dev] Is this an issue for DPDK vhost rss? >> > >> > On Mon, Jun 15, 2015 at 05:55:13PM +0000, Daniele Di Proietto wrote: >> > > On 15/06/2015 12:16, "Traynor, Kevin" <kevin.tray...@intel.com> >>wrote: >> > > >There is a dpdk patchset that contains a potential fix for this >>and lots >> > > >of >> > > >other changes, but I haven't tested yet. >> > > >https://urldefense.proofpoint.com/v2/url?u=http- >> 3A__dpdk.org_ml_archives_d >> > > >>>ev_2015-2DJune_018436.html&d=BQIFAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw- >> YihVMN >> > > >tXt- >> uEs&r=SmB5nZacmXNq0gKCC1s_Cw5yUNjxgD4v5kJqZ2uWLlE&m=FDVPKa2SqwpyYOTmA2 >> > > >> >>>zGdscCPa1FVdQG3Zbr4tHrp38&s=fjg7wArWvYLJlgEGKijK6W6ECAxGk660UrPF3rAr4Rs& >>>e= >> > >> > I skimmed over the patchset and it is an ABI breaker, so I >> > think the policy demands to announce it on 2.1 and merge only >> > in 2.2 release. >> >> I tested with a subset of the patches and the ol_flags.rss bit is being >>set >> correctly. >> >> It could be merged and available in DPDK 2.1 with a config parameter. >> However, >> even with this we'd need to assess the rest of the changes and >>compatibility >> with OVS. >> >> > >> > Maybe it is possible to separate the ol_flags fix into a >> > smaller and simple patch to be accepted as bugfix yet in 2.1. >> >> That would be ideal. >> >> > >> > >> > > >> > Otherwise, should we avoid using the vectorized version? >> > > >> >> > > >> that's debatable - from a performance view it may be better to >>leave >> it >> > > >>in >> > > >> and take the hit elsewhere for the time being if there's a >>possibility >> > > >>that >> > > >> it will be changed in DPDK later. >> > > > >> > > >With a loop to reset the rss after the rte_vhost_dequeue_burst() >>call >> I'm >> > > >seeing a drop of ~100kpps in vhost performance. Rx vectoristion >>gives a >> > > >gain >> > > >of about ~1 mpps on my system for the phy2phy cases. >> > > > >> > > >Using the ol_flags check is the right option when DPDK supports >>setting >> it >> > > >correctly with rx vectorisation. In the meantime there's choice of >>using >> > > >the >> > > >reset loop or removing rx vectorisation - what do you think? >> > > >> > > Thanks for sharing these results. I've observed that if OVS can't >>use >> the >> > > RSS >> > > hash and has to compute we lose ~2Mpps on a single flow phy2phy >>test. >> > > >> > > Despite this, I still think we should consider the ol_flags because: >> > > >> > > * DPDK drivers (other than ixgbe) should use ol_flags as well to >>mark the >> > > RSS hash as valid >> > > * ixgbe_recv_pkts_vec() will report PKT_RX_RSS_HASH in future >>releases >> (the >> > > patch you sent will be effective since DPDK 2.2, right?) >> > >> > I agree with the above. > >I'm also seeing a ~3 mpps drop in phy2phy when not using the hardware >hash. >It's a ~25% drop on phy2phy vs. a ~2.5% drop on the vhost interface with >the >hash reset workaround. There may not be a DPDK fix that we can incorporate >until towards the end of the year (DPDK 2.2?) so IMHO, with this size of >performance drop it would be better to use the workaround until there's a >DPDK fix. I agree that from a performance perspective it would be better. The only problem I have with this approach is the following: does it make sense to read the RSS value even if the PKT_RSS_HASH flag is not set? Is it safe to assume that the NICs are returning appropriate values for IP TCP and UDP packets all the time? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev