> > + __asm__ __volatile__(
> > + "mov %1, %0\n\t"
> > + : "=r" (i)
> > + : "r" (kaddr+offset)); /* load tlb entry */
> > + for(i=0;i<size;i+=64) {
> > + __asm__ __volatile__(
> > + "prefetchnta (%1, %0)\n\t"
> > + "prefetchnta 32(%1, %0)\n\t"
> > + : /* no output */
> > + : "r" (i), "r" (kaddr+offset));
> > + }
> > + }
> > left = __copy_to_user(desc->buf, kaddr + offset, size);
> > kunmap(page);
>
> This seems bogus -- you need to handle faults --
> i.e. __prefetchnta_to_user() ;-).
It wants wrapping nicely. A generic prefetch and prefetchw does help some other
cases (scheduler for one).
Does the prefetch instruction fault on PIII/PIV then - the K7 one appears not
to be a source of faults
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- [beta patch] SSE copy_page() / clear_page() Manfred Spraul
- Re: [beta patch] SSE copy_page() / clear_page() Linus Torvalds
- Re: [beta patch] SSE copy_page() / clear_page() Doug Ledford
- Re: [beta patch] SSE copy_page() / clear_page(... Manfred Spraul
- Re: [beta patch] SSE copy_page() / clear_p... Doug Ledford
- Re: [beta patch] SSE copy_page() / cl... Manfred Spraul
- Re: [beta patch] SSE copy_page() ... Manfred Spraul
- Re: [beta patch] SSE copy_page() / clear_page() Manfred Spraul
- Re: [beta patch] SSE copy_page() / clear_page() Andrew Morton
- Re: [beta patch] SSE copy_page() / clear_page() Pavel Machek
- Re: [beta patch] SSE copy_page() / clear_page(... Alan Cox
- Re: [beta patch] SSE copy_page() / clear_p... Pavel Machek
- Re: [beta patch] SSE copy_page() / cl... Alan Cox
- Re: [beta patch] SSE copy_page() / cl... Manfred Spraul

