Re: [PATCH] x86: set PAE PHYSICAL_MASK_SHIFT to match 64-bit

H. Peter Anvin
2008-06-07T18:39:45Z

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