Re: [PATCH] Reserve memory for kdump kernel within RMO region
From: M. Mohan Kumar <hidden>
Date: 2009-11-27 08:35:50
Also in:
kexec
On 11/27/2009 12:56 AM, Bernhard Walle wrote:
M. Mohan Kumar schrieb:quoted
On 11/26/2009 12:22 AM, Bernhard Walle wrote:quoted
M. Mohan Kumar schrieb:quoted
Reserve memory for kdump kernel within RMO region When the kernel size exceeds 32MB(observed with some distros), memory for kdump kernel can not be reserved as kdump kernel base is assumed to be 32MB always. When the kernel has CONFIG_RELOCATABLE option enabled, provide the feature to reserve the memory for kdump kernel anywhere in the RMO region.Hi Bernhard,quoted
Correct me if I'm wrong, but: CONFIG_RELOCATABLE is for the kernel that gets loaded as crashkernel, not for the kernel that loads the crashkernel. So it would be perfectly fine that a kernel that has not CONFIG_RELOCATABLE set would load another kernel that has CONFIG_RELOCATABLE set on an address != 32 M.No, with relocatable option, the same kernel is used as both production and kdump kernel.Can be, but it's not strictly necessary. It depends what userland does. Especially it's possible that a non-relocatable, self-compiled kernel loads a relocatable distribution kernel as capture kernel.
I don't understand why a non-relocatable kernel will use relocatable kernel for capturing kdump kernel. The idea for relocatable kernel is to avoid using two different kernels to capture kernel dump.
Also, it would make sense to make the behaviour symmetric across
platforms. Currently we have:
- x86 and ia64: Without offset on command line, use any offset
With offset on command line, use that offset and fail
if no memory is available at that offset.
- ppc64: Always use 32M and ignore the offset.
If your patch gets applied, we have:
- ppc64: With CONFIG_RELOCATABLE, use any offset
With offset on command
I don't see why the behaviour on ppc64 should be completely different.
Having maintained kdump for SUSE for x86, ia64 and partly ppc64 in the
past, I always felt that ppc64 is more different from x86 than ia64 is
from x86. That's one more step into that direction without a technical
reason.Also with the crashkernel=auto parameter (patches are not yet merged), the crashkernel base (offset) by default would be 32MB. In this case if a kernel passed with crashkernel=auto and if the first kernel size exceeds 32MB, memory for kdump kernel will always fail.
Having that all said: If your patch gets in mainline kernel, than we should change the behaviour also for x86 and ia64. Regards, Bernhard