>    My means is not prefetch the page but use prefetch instruction
>    
>    (e.g. __asm__ __volatile__( " prefetchnta %0" : : "m" (*addr)   ) ;//
>    addr is fist parameter of pagefault handler, which caused page fault
>    trap),  prefetch the content in the addr into cache line.

Let me reiterate that I don't understand how you're going to accomplish
the prefetch with this instruction.  This prefetch instruction takes a
virtual address as its argument.  If you issue a prefetch instruction in
the kernel's address space and pass it a virtual address in an address
space of a user process, you will either:

        a) prefetch unrelated data somewhere else in the kernel address space
        b) generate a nop because the user's address isn't mapped in the
        kernel.  Loading from an address without page translation
        entries would generate a page fault.

In both of these cases, you're not obtaining the desired effect.

-j
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to