> 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