On 12/11/2012 03:53 PM, Yinghai Lu wrote:
> On Tue, Dec 11, 2012 at 9:38 AM, H. Peter Anvin <h...@zytor.com> wrote:
>> On 12/11/2012 09:15 AM, Yinghai Lu wrote:
>>>
>>>
>>> No, that is not right place. initrd could be loaded anywhere like way
>>> high by bootloader.
>>>
>>
>> Only *after* your changes... the current protocol doesn't allow that.
> 
> before for-x86-boot change,
> 
> bootloader put ramdisk just under 2g...
> 
> [    0.000000] memblock_reserve: [0x7d9dc000-0x7fffefff] RAMDISK
> 
> and arch/x86/kernel/head_64.S only set ident mapping for [0,1g)
> 
> so before init_memory_mapping, we need to use early_ioremap to access
> ramdisk area.
> 
> also even after init_memory_mapping, we still need use early_ioremap to access
> it because user could use memmap to skip it.
> 
> PS: this problem have nothing to do with mapping that is set by bootloader.
> arch/x86/kernel/head_64.c will have it own mapping, and only cover [0,1g).
> 

Well, we could invoke it on the bootloader page tables, but as you say
it may not be a good idea... depending on how much memory we may be
talking about.  One solution -- which I have to admit is starting to
sound really good -- is to set up a #PF handler which cycles through a
set of page tables and creates a "virtual identity map"... it does have
the advantage of making the entire physical address space available
without any additional funnies.

        -hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to