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

From: Eric W. Biederman
Date: Fri Jan 25 2008 - 06:12:06 EST


Jeremy Fitzhardinge <jeremy@xxxxxxxx> writes:

> Eric W. Biederman wrote:
>> Note. I don't believe we use either trampoline (cpu startup or acpi wakeup)
>> in the hypervisor case (esp Xen). So we should be able to completely ignore
>> Xen and do the memcpy of pgd entries.
>>
>
> Indeed. The alias mapping can be set up in native_pagetable_setup_done() and
> needn't involve Xen at all.

Good. Then this case gets easy.

We just need a pgd that has pgd entries that duplicate the kernel pgd entries
at both address 0 and at the normal kernel address.

In 64bit mode we make this part of the trampoline because we need a pgt below
4G so that we can point a 32bit %cr3 value at it. We can either use that
technique for the 32bit kernel (and be consistent) or we can have a single
trampoline/wakeup pgd that we use. As all pgd entries must be below 4G in
32bit mode.

Although if we really wanted to be restrictive we could have a much more limited
set of identity page table entries that only map the low 1M, or possibly just
640K.

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