On Mon, Jul 12, 2010 at 11:31:50PM +0000, Brian Cockrell wrote: > > I received the message "Could not find a free area of memory of 21b1a000 bytes...Locate_hole failed" while attempting to perform a kexec-l on an image file of approximately 550mb. Hardware is x86 with 4GB memory. Kernel is 2.6.34 and booted via Livecd. free is showing 3047324kb free memory available. Dmesg is showing nothing. I am able to boot a 400mb image. Suggested debug steps? Hi Brian, I would guess that the problem is that the code can't find a (continuous) range of physical memory to place the image. I'm a bit rust on this portion of the code, but as I understand it kexec works out the memory segments that it needs and tries to place each of them in a valid "System RAM" region. The code that is failing would be a good place to start, kexec/kexec.c:locate_hole() of kexec-tools. The memory regions are set up by inspecting /sys/firmware, or if that fails, using /proc/iomem. See kexec/arch/i386/kexec-x86-common.c:get_memory_ranges_sysfs(). 550Mb, is a rather large image. I'm curious to know why.