Kexec & Memory Zones question

Sujit V sujit.linux at
Wed May 4 14:35:46 EDT 2011

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

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.?

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.?

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


More information about the kexec mailing list