Re: [lhcs-devel] Re: in_atomic doesn't count local_irq_disable?
From: Manfred Spraul
Date: Thu Jan 01 2004 - 19:54:53 EST
Srivatsa Vaddagiri wrote:
More debugging reveals that the page fault happens
always while doing a prefetch. The prefetch is
present inside list_for_each_entry macros.
For now I have disabled the x86 prefetch function
to do nothing.
The test seems to run fine so far w/o any of the
page faults I was experiencing. Will update
at the end of the overnight run if I hit the problem again.
Wonder if prefetch has some issues on Intel x86 (P3) SMP systems?
Hmm. Perhaps prefetch updates CR2?
We know already that the CR2 is not directly linked to the page fault
interrupt - if a page fault happens at the same time as a higher
priority event (iirc hw interrupt), then CR2 is updated and the higher
priority event is handled. That prevents Linux from using CR2 to store
the cpu number - only netware can do that, because netware never causes
paging faults.
Could you write a test module that reads cr2, executes a few prefetch
instructions and then checks if cr2 changed? I won't have access to my
P3 SMP system in the next few days.
--
Manfred
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/