Re: [PATCH 3/8] add mem64_min/max control

Eric W. Biederman
2012-11-17T08:25:48Z

Yinghai Lu <yinghai@kernel.org> writes:

> On Fri, Nov 16, 2012 at 10:18 PM, Eric W. Biederman
> <ebiederm@xmission.com> wrote:
>> Yinghai Lu <yinghai@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 patchset
>> it looks like you are introducing mem64-min and mem64-max as a hack to
>> 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 64bit
bzImage loader from the 32bit bzImage loader should allow a lot of the
legacy bits to be deleted. Past that I think we simply down in the real
of needing a command line pointer that is 64bit instead of the current
32bit one. That we should be able to fix by fixing the boot protocol.

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.

> mem64-min and mem64-max are used to limit range for buffer that could
> stay above 4g.
> like limit them one range belong to one node only.

Having the limits makes sense. Requring anything other than the low 1MB
magic below 4G seems wrong if we are going to go all of the way and push
the boot protocol as far as we can.

Eric