Kexec & Memory Zones question
sujit.linux at gmail.com
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
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
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