On 8/11/06 12:15 am, "Jeremy Fitzhardinge" <jeremy at goop.org> wrote: > The parenthetic clause is annoyingly ambiguous: does it mean "when the > present flag is currently set to 0" or "when setting the present flag to > 0"? The passive voice should always be avoided. If the PTE was previously NP, and you already flushed the TLB since it became NP, then you can be quite sure that there is no stale TLB entry. x86 TLBs do not cache failed lookups. If they did, many OSes would not work! Changing from read-only to writable is more exciting. You get a spurious page fault when the CPU finds the read-only TLB entry on your first write access. The CPU does throw away the TLB entry at that point though, so the fault handler can do nothing and yet still make progress. That's guaranteed. -- Keir