Messages in this thread | | | From | (Eric W. Biederman) | Subject | Re: [PATCH] x86: Construct 32 bit boot time page tables in native format. | Date | Fri, 25 Jan 2008 04:07:57 -0700 |
| |
Jeremy Fitzhardinge <jeremy@goop.org> 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
| |