Re: Why preallocate pmd in x86 32-bit PAE?

From: H. Peter Anvin
Date: Thu Nov 15 2007 - 17:44:38 EST


Linus Torvalds wrote:

IIRC, the present bit is ignored in the magic 4-entry PGD. All entries have to be present.


This is true, although you could point a PGD to an all-zero page if you really wanted to. You have to re-load CR3 after modifying the top-level entries.

What earlier CPU's did was to basically load all four values into the CPU when you loaded %cr3. There was no "three-level page table walker" at all: it was still a two-level page table walker, there were just for magic internal page tables that were indexed off the two high bits.

They still are. Loading CR3 in PAE really loads four registers from memory. x86-64 is different, of course.

-hpa
-
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/