lkml.org 
[lkml]   [2011]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [x86] Fix prefetch instruction


On Fri, 5 Aug 2011, H. Peter Anvin wrote:

> On 08/05/2011 09:18 AM, Christoph Lameter wrote:
> > The prefetchnta instruction used for prefetching on x86 is a special instruction
> > used for streaming that is usually used to avoid polluting the l2 and l3 caches.
> > The cacheline will be evicted rapidly.
> >
> > What we need is a prefetch that puts the cacheline in all levels of the cache hierachy instead.
> > Change the instruction to do that.
> >
> > Acked-by: Andi Kleen <ak@linux.intel.com>
> > Signed-off-by: Christoph Lameter <cl@linux.com>
> >
>
> Have you done any performance analysis on this versus the null case? I
> know there are some workloads where it helps, but if it hurts as many as
> it helps...

No I have not. prefetch IMHO means that the cacheline is fetched early so
that the cacheline is fully available like any other to the code.
prefetchnta does fetch the cacheline too but its not treated like the other cacheline but
preferably thrown out again. Its a "streamfetch" designed for apps that
scan over large amounts of memory and want to avoid cache pollution.

This is surprising to the end user as far as I can tell.



\
 
 \ /
  Last update: 2011-08-05 23:13    [W:0.056 / U:0.268 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site