[PATCH 3/8] add mem64_min/max control
Eric W. Biederman
ebiederm at xmission.com
Sun Nov 18 00:00:08 EST 2012
"H. Peter Anvin" <hpa at zytor.com> writes:
> On 11/17/2012 08:47 PM, Eric W. Biederman wrote:
>>>
>>> I don't think that is feasible; we need access to this structure
>>> extremely early. I think if you're using the 64-bit entry point it
>>> has to be an entry condition that those structures are mapped. It
>>> simply becomes a precondition for using the 64-bit entry point.
>>
>> 64bit purgatory coming from kexec should be running with a page table
>> that identity maps everything loaded by kexec and in practice all of
>> memory.
>>
>> We should still be using that page table when we enter the new kernel.
>>
>> However then the 64bit kernel switches to it's own page tables.
>>
>> So after that point we potentially need early_ioremap, because the
>> kernel's page tables may not have covered the boot_params. Certainly we
>> need to do something to ensure the kernels page table covers boot_params.
>>
>
> The easy way to fix that is to do what we do on 32 bits: we copy it
> into the bss before we turn paging on (the 64-bit equivalent is before
> we switch to the new page tables.) That way we know where it is, at
> least for the bounded-size data items.
Whatever works. It sounds like six of one half a dozen of the other to
me. Last I looked early_ioremap works as soon as paging is enabled on
x86_64.
Eric
More information about the kexec
mailing list