[PATCH 3/8] add mem64_min/max control
H. Peter Anvin
hpa at zytor.com
Sat Nov 17 15:41:40 EST 2012
Sorry, with "real mode" are we talking about struct boot_params or the actual realmode trampoline? The latter needs to be < 640K as a hw requirement.
Sorry, on my cellphone atm and can't direcly check.
Yinghai Lu <yinghai at kernel.org> wrote:
>On Sat, Nov 17, 2012 at 12:25 AM, Eric W. Biederman
><ebiederm at xmission.com> wrote:
>> Yinghai Lu <yinghai at kernel.org> writes:
>>> On Fri, Nov 16, 2012 at 10:18 PM, Eric W. Biederman
>>> <ebiederm at xmission.com> wrote:
>>>> Yinghai Lu <yinghai at kernel.org> writes:
>>>>> So could limit range for 4g above buffers.
>>>> What is wrong with mem-min and mem-max? At this point in the
>>>> it looks like you are introducing mem64-min and mem64-max as a hack
>>>> avoid fixing mem-min and mem-max properly.
>>> if we set mem-min high, some buffers for purgatory and real_mode can
>>> not be allocated properly.
>> Let's see. For a 32bit kexec that is a fundamental limit, even if we
>> are booting a 64bit kernel.
>> For a 64bit kexec we have a 64bit purgatory so it should not be a
>> problem to relocate it higher.
>> Hmm. I'm not certain about the real_mode bits. Splitting out the
>> bzImage loader from the 32bit bzImage loader should allow a lot of
>> legacy bits to be deleted. Past that I think we simply down in the
>> of needing a command line pointer that is 64bit instead of the
>> 32bit one. That we should be able to fix by fixing the boot
>> Since the real mode bits when loading a 64bit kernel are just a
>> parameter area there should be no fundamental reason for them to be
>> below 4G.
>> The code needs to default to loading the kernel in the non kdump case
>> at the address it was compiled to run at. But for the rest I really
>> don't see why we can't load the kernel very high.
>then for setup data (boot param) and command line, we have to set extra
>mapping for them in kernel arch/x86/kernel/head_64.S
>with my current patchset for kernel and kexec, we only need to set
>for [_text, _end) in kernel arch/x86/kernel/head_64.S
Sent from my mobile phone. Please excuse brevity and lack of formatting.
More information about the kexec