Subject: Re: [net-next 01/11] ixgbe: Do not use DCA to prefetch the entire packet into the cache

From: Alexander Duyck <[email-masked]>
Date: Tue, 13 Nov 2012 09:41:38 -0800

On 11/13/2012 06:13 AM, Eric Dumazet wrote:
> On Tue, 2012-11-13 at 06:03 -0800, Jeff Kirsher wrote:
>> From: Alexander Duyck <[email-masked]>
>>
>> The way the code was previously written it was causing DCA to prefetch the
>> entire packet into the cache when it was enabled.  That is excessive as we
>> only really need the headers.
>>
>> We are now prefetching the headers via software so doing this from DCA would
>> be redundant anyway.  So clear the bit that was causing us to prefetch the
>> packet data and instead only use DCA for the descriptor rings.
>>
>> Signed-off-by: Alexander Duyck <[email-masked]>
>> Tested-by: Phil Schmitt <[email-masked]>
>> Signed-off-by: Jeff Kirsher <[email-masked]>
>> ---
> Excellent !
>
> My own ixgbe cards are moving so I cant test this, do you guys have some
> numbers to share ?
>
> Thanks

In my tests I saw no real change because of the DCA changes.  I kind of
suspected that would be the case as mentioned in the patch the prefetch
and DCA were both doing the same thing so by dropping the extra DCA
prefetch I am just polluting the case less.

I have a similar set of changes for the ixgbe transmit path that are
similar to the changes I made to igb in this patch set.  Those are a bit
more interesting as they actually decreased the ixgbe_xmit_frame_ring
function overhead for some of my tests by something like 15%.

Thanks,

Alex