Re: [Patch] kexec: increase max of kexec segments and use dynamic allocation

Eric W. Biederman
2010-07-22T07:08:11Z

Cong Wang <amwang@redhat.com> writes:

> On 07/22/10 14:28, Eric W. Biederman wrote:
>> Amerigo Wang<amwang@redhat.com> writes:
>>
>>> Currently KEXEC_SEGMENT_MAX is only 16 which is too small for machine with
>>> many memory ranges. Increase this hard limit to 1024 which is reasonably large,
>>> and change ->segment from a static array to a dynamically allocated memory.
>>
>> ???
>>
>> This should be about segments in the executable being loaded. What
>> executable has one segment for each range of physical memory?
>>
>> Not that generalizing this is a bad idea but with a comment that
>> seems entirely wrong I am wondering what the problem really is.
>>
>
> Ah, I think Neil should explain this.
>
> He made a patch which includes many memory ranges, caused kexec
> fails to load the kernel. Increasing this limit and the corresponding
> one in kexec-tools fixes the problem. His patch is not in upstream
> kexec-tools, AFAIK.
>
> However, even if we don't consider that patch, isn't 16 too small too?

Generally you just need one physical hunk for the code, maybe a second
for the initrd.

It is perfectly fine to raise the number of segments as it doesn't
affect the ABI, but it wants a good explanation of what kind of weird
application wants to write to all over memory when it is loaded.

Eric