* Change ia64 prefetch to use lfetch.fault
@ 2005-07-28 21:53 Chen, Kenneth W
2005-07-29 1:58 ` david mosberger
0 siblings, 1 reply; 2+ messages in thread
From: Chen, Kenneth W @ 2005-07-28 21:53 UTC (permalink / raw)
To: linux-ia64
I don't remember whether this has been discussed earlier, won't
it make sense to use the fault variant of lfetch for prefetch()
and prefetchw()? After all, the caller has high confidence that
the cache line will be used in the future.
Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
--- linux-2.6.12/include/asm-ia64/processor.h.orig 2005-07-28 14:46:26.629519713 -0700
+++ linux-2.6.12/include/asm-ia64/processor.h 2005-07-28 14:48:17.037721485 -0700
@@ -682,13 +682,13 @@ ia64_imva (void *addr)
static inline void
prefetch (const void *x)
{
- ia64_lfetch(ia64_lfhint_none, x);
+ ia64_lfetch_fault(ia64_lfhint_none, x);
}
static inline void
prefetchw (const void *x)
{
- ia64_lfetch_excl(ia64_lfhint_none, x);
+ ia64_lfetch_fault_excl(ia64_lfhint_none, x);
}
#define spin_lock_prefetch(x) prefetchw(x)
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: Change ia64 prefetch to use lfetch.fault
2005-07-28 21:53 Change ia64 prefetch to use lfetch.fault Chen, Kenneth W
@ 2005-07-29 1:58 ` david mosberger
0 siblings, 0 replies; 2+ messages in thread
From: david mosberger @ 2005-07-29 1:58 UTC (permalink / raw)
To: linux-ia64
No, it doesn't --- it actually hurt performance last time I measured
it. Basically, Linux uses prefetch() too often with bad/NULL
pointers, IIRC. Check my earlier mails where I fixed the IVT code to
properly handle lfetch.fault (from a couple of months ago).
--david
On 7/28/05, Chen, Kenneth W <kenneth.w.chen@intel.com> wrote:
> I don't remember whether this has been discussed earlier, won't
> it make sense to use the fault variant of lfetch for prefetch()
> and prefetchw()? After all, the caller has high confidence that
> the cache line will be used in the future.
>
>
> Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
>
> --- linux-2.6.12/include/asm-ia64/processor.h.orig 2005-07-28 14:46:26.629519713 -0700
> +++ linux-2.6.12/include/asm-ia64/processor.h 2005-07-28 14:48:17.037721485 -0700
> @@ -682,13 +682,13 @@ ia64_imva (void *addr)
> static inline void
> prefetch (const void *x)
> {
> - ia64_lfetch(ia64_lfhint_none, x);
> + ia64_lfetch_fault(ia64_lfhint_none, x);
> }
>
> static inline void
> prefetchw (const void *x)
> {
> - ia64_lfetch_excl(ia64_lfhint_none, x);
> + ia64_lfetch_fault_excl(ia64_lfhint_none, x);
> }
>
> #define spin_lock_prefetch(x) prefetchw(x)
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Mosberger Consulting LLC, voice/fax: 510-744-9372,
http://www.mosberger-consulting.com/
35706 Runckel Lane, Fremont, CA 94536
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-07-29 1:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-28 21:53 Change ia64 prefetch to use lfetch.fault Chen, Kenneth W
2005-07-29 1:58 ` david mosberger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox