> -----Original Message----- > From: Zoltan Kiss [mailto:zoltan.kiss at linaro.org] > Sent: Monday, September 7, 2015 3:15 PM > To: Richardson, Bruce; dev at dpdk.org > Cc: Ananyev, Konstantin > Subject: Re: [PATCH] ixgbe: prefetch packet headers in vector PMD receive > function > > > > On 07/09/15 13:57, Richardson, Bruce wrote: > > > > > >> -----Original Message----- > >> From: Zoltan Kiss [mailto:zoltan.kiss at linaro.org] > >> Sent: Monday, September 7, 2015 1:26 PM > >> To: dev at dpdk.org > >> Cc: Ananyev, Konstantin; Richardson, Bruce > >> Subject: Re: [PATCH] ixgbe: prefetch packet headers in vector PMD > >> receive function > >> > >> Hi, > >> > >> I just realized I've missed the "[PATCH]" tag from the subject. Did > >> anyone had time to review this? > >> > > > > Hi Zoltan, > > > > the big thing that concerns me with this is the addition of new > > instructions for each packet in the fast path. Ideally, this > > prefetching would be better handled in the application itself, as for > > some apps, e.g. those using pipelining, the core doing the RX from the > > NIC may not touch the packet data at all, and the prefetches will > instead cause a performance slowdown. > > > > Is it possible to get the same performance increase - or something > > close to it - by making changes in OVS? > > OVS already does a prefetch when it's processing the previous packet, but > apparently it's not early enough. At least for my test scenario, where I'm > forwarding UDP packets with the least possible overhead. I guess in tests > where OVS does more complex processing it should be fine. > I'll try to move the prefetch earlier in OVS codebase, but I'm not sure if > it'll help.
I would suggest trying to prefetch more than one packet ahead. Prefetching 4 or 8 ahead might work better, depending on the processing being done. /Bruce