Re: [PATCH] x86: Construct 32 bit boot time page tables in native format.

H. Peter Anvin
2008-01-25T00:41:18Z

Jeremy Fitzhardinge wrote:
> H. Peter Anvin wrote:
>> No, if Xen wasn't an issue there wouldn't be anything to do for the
>> PAE case at all (since the PGD is trivial.)
>>
>> Copying PMDs is more or less an analogous case of the !PAE case, once
>> the allocation is already done. The allocation should be trivial
>> though, since this would be a one-time thing.
>
> I think we're in vehement agreement here. In either case, its just a
> matter of something like:
>
> memcpy(pgd, &pgd[USER_PTRS_PER_PGD], sizeof(pgd_t) *
> KERNEL_PTRS_PER_PGD);
>
> which would work for both PAE and non-PAE.
>
>>> It would be easy enough to add some code on xen side to look for pmd
>>> aliases when using/pinning a pagetable, and allocate'n'copy a new pmd
>>> page as needed. That way the core code can ignore the issue.
>>
>> As much as I'd rather see Xen fixing this than having it continue to
>> impact the kernel, I presume it will take some time to flush the
>> broken hypervisors out?
>
> Sorry, I was unclear. I meant in the purely Xen-specific parts of the
> kernel (arch/x86/xen). It wouldn't require a hypervisor change.
>

Oh, that makes that option much more viable and probably preferrable.

-hpa