Re: [PATCH] Reserve memory for kdump kernel within RMO region

2009-11-27 Thread M. Mohan Kumar

On 11/27/2009 12:56 AM, Bernhard Walle wrote:

M. Mohan Kumar schrieb:

On 11/26/2009 12:22 AM, Bernhard Walle wrote:

M. Mohan Kumar schrieb:

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,


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



___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


Re: [PATCH] Reserve memory for kdump kernel within RMO region

2009-11-27 Thread Simon Horman
On Fri, Nov 27, 2009 at 02:05:46PM +0530, M. Mohan Kumar wrote:
 On 11/27/2009 12:56 AM, Bernhard Walle wrote:
 M. Mohan Kumar schrieb:
 On 11/26/2009 12:22 AM, Bernhard Walle wrote:
 M. Mohan Kumar schrieb:
 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,
 
 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.

True, but that doesn't necessarily mean that using a relocatable
kdump kernel is required. Well, hopefully not.

 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
 
 
 ___
 kexec mailing list
 kexec@lists.infradead.org
 http://lists.infradead.org/mailman/listinfo/kexec

___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


Re: [PATCH] Reserve memory for kdump kernel within RMO region

2009-11-27 Thread M. Mohan Kumar

Hi,

As of now the kdump kernel base is fixed to be 32MB. The intention of 
this patch is to modify that behaviour (for relocatable kernels)


* Regular kernel size may exceed 32MB, in this case we can't have kdump 
kernelbase as 32MB.


* crashkernel=auto also assumes that kdump kernelbase as 32MB, and it 
may also fail in reserving memory for kdump kernel.


On 11/27/2009 12:56 AM, Bernhard Walle wrote:

M. Mohan Kumar schrieb:

On 11/26/2009 12:22 AM, Bernhard Walle wrote:

M. Mohan Kumar schrieb:

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,


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.

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.

Having that all said: If your patch gets in mainline kernel, than we
should change the behaviour also for x86 and ia64.



Regards,
Bernhard

___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec



___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


Re: [PATCH] Reserve memory for kdump kernel within RMO region

2009-11-27 Thread Bernhard Walle
M. Mohan Kumar schrieb:
 Hi,
 
 As of now the kdump kernel base is fixed to be 32MB. The intention of 
 this patch is to modify that behaviour (for relocatable kernels)
 
 * Regular kernel size may exceed 32MB, in this case we can't have kdump 
 kernelbase as 32MB.
 
 * crashkernel=auto also assumes that kdump kernelbase as 32MB, and it 
 may also fail in reserving memory for kdump kernel.

I'm not opposed to remove the 32MB restriction, but I would like to make
the behaviour independent of CONFIG_RELOCATABLE like it's on x86:

 - Use 32M if one specifies x...@32m
 - Use preferrably 32M, but fall back to another address if one
   specifies xxx or x...@0m.

I don't see any problem with that. But it would make behaviour equal
accross platforms.



Regards,
Bernhard



___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


Re: [PATCH] Reserve memory for kdump kernel within RMO region

2009-11-26 Thread Bernhard Walle
M. Mohan Kumar schrieb:
 On 11/26/2009 12:22 AM, Bernhard Walle wrote:
 M. Mohan Kumar schrieb:
 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,
 
 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.

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.

Having that all said: If your patch gets in mainline kernel, than we
should change the behaviour also for x86 and ia64.



Regards,
Bernhard

___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


Re: [PATCH] Reserve memory for kdump kernel within RMO region

2009-11-25 Thread Bernhard Walle
M. Mohan Kumar schrieb:
 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.

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.

So it would be part of the command line to determine whether a fixed or
a variable address is used. The system configuration (or the admin)
knows both: if the kernel that should be loaded is relocatable (can be
detected with the x86 bzImage header or with the ELF type for vmlinux)
and it can also influence the boot command line.

To sum it up: I'm not against reserving it anywhere, I'm only against
making it dependent on CONFIG_RELOCATABLE which has another function.



Regards,
Bernhard


___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec