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

From: Cong Wang
Date: Mon Jul 26 2010 - 06:08:14 EST


On 07/25/10 10:54, Eric W. Biederman wrote:
huang ying<huang.ying.caritas@xxxxxxxxx> writes:

On Thu, Jul 22, 2010 at 3:08 PM, Eric W. Biederman
<ebiederm@xxxxxxxxxxxx> wrote:
Cong Wang<amwang@xxxxxxxxxx> writes:

On 07/22/10 14:28, Eric W. Biederman wrote:
Amerigo Wang<amwang@xxxxxxxxxx> 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.

kexec can be used to load not only the kernel images, but also more
complex images such as hibernation image. So I think it is good to
raise the number of segments.

Totally reasonable.

And in all fairness the patch does a good job of raising the limit.

However if that is the goal 1024 is probably a bit low as I believe
SGI has built machines with that many nodes. Still after the patch
under discussion 1024 was only a limit in a header file so it can
be trivially changed.

So, what is a better number? 2048? :)

Thanks.

--
The opposite of love is not hate, it's indifference.
- Elie Wiesel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/