Re: [beta patch] SSE copy_page() / clear_page()
Alan Cox (alan@lxorguk.ukuu.org.uk)
Tue, 20 Feb 2001 20:49:49 +0000 (GMT)
> > + __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 majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/