Re: [PATCH 10/28] i386: map enough initial memory to create lowmem mappings

Eric W. Biederman
2007-04-23T18:57:12Z

Jeremy Fitzhardinge <jeremy@xensource.com> writes:

> Eric W. Biederman wrote:
>> Consider a memory hole of size 8M immediately after our bootmem bitmap.
>> head.S which knows nothing of holes will map the pages of the hole
>> into the initial page tables assuming that is where the page tables
>> will live.
>>
>
> Sure, but considering we're only talking about mapping an additional *2*
> pages, the chances are that it will affect a kernel as much as the early
> head.S mapping. It's well within the variability of fairly similar
> kernel configs.

If (cpu_has_pse) it may only be an additional two pages.
INIT_MAP_BEYOND is currently mapping a lot more then that.

>> As for how to fix this, we need to call boot_ioremap or better
>> bt_ioremap on the address returned from alloc_bootmem_pages_low to
>> force the allocated page into the page table. After we have setup
>> the page table page we can call unmap the page to free up the scarce
>> early mapping resource.
>>
>
> Would that be necessary? Is there any need to remap it? Couldn't you
> just do the straightforward phys->virt mapping and use the page where it
> lies?

Catch-22. If the page is not mapped yet you can't use it where it lies.

Eric