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

Jeremy Fitzhardinge
2008-01-25T00:31:34Z

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.

J