Kexec & Memory Zones question

WANG Cong xiyou.wangcong at
Tue May 10 05:42:11 EDT 2011

On Wed, 04 May 2011 11:35:46 -0700, Sujit V wrote:

> On our x86_64 NUMA hardware running linux 2.6.23 with two memory nodes
>  have the following zone layout
> DMA   0 - 16MB
> DMA32   16MB to 4GB
> NORMAL 4GB to 96GB
> We had the crashkernel boot param as 128M at 16M. I am using
> kexec-tools-2.0.0
> We observed that the reserved crashkernel memory was getting used by the
> system.
> We found out by kdb  that around 17MB of physical memory the memory
> contents were changing which proved that the system was using the memory
> which is actually reserved for crash kernel. [ If I load crash kernel
> using kexec then the system would crash. The back trace was always in
> the megasas driver. ]
> My Question is
> 1) Should the crashkernel memory be located past the DMA32 zone.?

Your DMA32 zone looks extremely large, probably due to you enabled NUMA? 
What does dmesg say if possible? Also, what is your kernel version?

> I have tried the following
> (1) crashkernel=128M at 4GB  ( So the memory reservation is past DMA32) In
> this scenario the kexec tools gave an error "Could not find a free area
> of memory of xyz bytes"
> (2) I changed the max of DMA32 to 1GB
>      crashkernel=128M at 1G
> Still kexec gave the same error "Could not find a free area of memory of
> xyz bytes"
> Is there any specific restriction on where the crashkernel memory could
> be located.?

No, have you tried "crashkernel=128M at 0"? Can that reserve the memory

> Is it ok to be in the DMA32 region OR it should be beyond the DMA32
> region.

The reserve memory is unseen by the first kernel nor it should be used,
even if it is in DMA32 zone.

More information about the kexec mailing list