From: Zoltan Kiss <zoltan.kiss@linaro.org>
To: "Richardson, Bruce" <bruce.richardson@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [PATCH] ixgbe: prefetch packet headers in vector PMD receive function
Date: Fri, 25 Sep 2015 11:28:37 -0700 [thread overview]
Message-ID: <56059255.5010507@linaro.org> (raw)
In-Reply-To: <59AF69C657FD0841A61C55336867B5B035922A83@IRSMSX103.ger.corp.intel.com>
On 07/09/15 07:41, Richardson, Bruce wrote:
>
>> -----Original Message-----
>> From: Zoltan Kiss [mailto:zoltan.kiss@linaro.org]
>> Sent: Monday, September 7, 2015 3:15 PM
>> To: Richardson, Bruce; dev@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@linaro.org]
>>>> Sent: Monday, September 7, 2015 1:26 PM
>>>> To: dev@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.
I've moved the prefetch earlier, and it seems to work:
https://patchwork.ozlabs.org/patch/519017/
However it raises the question: should we remove header prefetch from
all the other drivers, and the CONFIG_RTE_PMD_PACKET_PREFETCH option?
>
> /Bruce
next prev parent reply other threads:[~2015-09-25 18:28 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-01 19:17 ixgbe: prefetch packet headers in vector PMD receive function Zoltan Kiss
2015-09-07 12:25 ` [PATCH] " Zoltan Kiss
2015-09-07 12:57 ` Richardson, Bruce
2015-09-07 14:15 ` Zoltan Kiss
2015-09-07 14:41 ` Richardson, Bruce
2015-09-25 18:28 ` Zoltan Kiss [this message]
2015-09-27 23:19 ` Ananyev, Konstantin
2015-10-14 16:10 ` Zoltan Kiss
2015-10-14 23:23 ` Ananyev, Konstantin
2015-10-15 10:32 ` Zoltan Kiss
2015-10-15 15:43 ` Ananyev, Konstantin
2015-10-19 16:30 ` Zoltan Kiss
2015-10-19 18:57 ` Ananyev, Konstantin
2015-10-20 9:58 ` Zoltan Kiss
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56059255.5010507@linaro.org \
--to=zoltan.kiss@linaro.org \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.