Re: [PATCH] x86: set PAE PHYSICAL_MASK_SHIFT to match 64-bit
From: H. Peter Anvin
Date: Sat Jun 07 2008 - 14:40:29 EST
Jeremy Fitzhardinge wrote:
It should either be 52 bits or dynamic based on CPUID information.
The latter is very expensive.
I'm more concerned that it might not be possible. I'm trying to think
how many places have compile-time constants derived from this mask.
Maybe not too many.
If there end up being additional control bits assigned in this space
we won't use them since we know the size of the address space (which
won't include the control bits) and thus will leave them at zero.
You mean, if new bits appear we can just adjust the mask accordingly to
avoid them? And if we don't use them, then they'll be zero?
Correct. Remember, the page table entries come from the kernel - not
from some random areas.
It's largely theoretical, since I believe Linux on x86-64 relies on
virtual >= physical+N, where I believe N is about 3 bits, and the page
table format or page size need to change to support more than 48 bits
of virtual address space.
I don't see any relationship between the physical and virtual size.
Certainly virtual is fixed at 48 bits (4*9+12), but I don't think
there's any deep reason why physical needs to be within 3 bits.
Identity-mapping. 1 bit goes to kernel/user split, then the kernel area
is split into multiple regions, one of which is identity-mapping. It
may be just 2.
-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/