kexec fails with "locate_hole failed"

Rostyslav Spolyak rspolyak at leobit.com
Fri Dec 31 01:21:43 PST 2021


Kexec (version 2.0.20) fails to launch crashdump kernel with following error:
> root at device:~# kexec --type zImage -p /boot/zImage --append="root=/dev/mmcblk1p1 1 maxcpus=1 reset_devices"
> syscall kexec_file_load not available.
> Could not find a free area of memory of 0x1000 bytes...
> locate_hole failed

The kernel (version 4.1.52) was configured with CONFIG_KEXEC and
CONFIG_SYSFS enabled. Additionally u-boot was updated to pass the
kernel command line "crashkernel=96M at 64M" to reserve RAM for the crash
kernel.

Can you please help to understand why kexec fails to find a free area
of 0x1000 bytes if 96M should be available.
Attaching "/proc/iomem" for reference:
> root at device:~# cat /proc/iomem
> 00905000-0091ffff : 905000.sram
> 02008000-0200bfff : /soc/aips-bus at 02000000/spba-bus at 02000000/ecspi at 02008000
> 02020000-02023fff : /soc/aips-bus at 02000000/spba-bus at 02000000/serial at 02020000
> 02034000-02037fff : /soc/aips-bus at 02000000/spba-bus at 02000000/serial at 02034000
> 0209c000-0209ffff : /soc/aips-bus at 02000000/gpio at 0209c000
> 020a0000-020a3fff : /soc/aips-bus at 02000000/gpio at 020a0000
> 020a4000-020a7fff : /soc/aips-bus at 02000000/gpio at 020a4000
> 020a8000-020abfff : /soc/aips-bus at 02000000/gpio at 020a8000
> 020ac000-020affff : /soc/aips-bus at 02000000/gpio at 020ac000
> 020b8000-020bbfff : /soc/aips-bus at 02000000/kpp at 020b8000
> 020bc000-020bffff : /soc/aips-bus at 02000000/wdog at 020bc000
> 020c9000-020c9fff : /soc/aips-bus at 02000000/usbphy at 020c9000
> 020ca000-020cafff : /soc/aips-bus at 02000000/usbphy at 020ca000
> 020e0000-020e3fff : /soc/aips-bus at 02000000/iomuxc at 020e0000
> 020ec000-020effff : /soc/aips-bus at 02000000/sdma at 020ec000
> 020f0000-020f3fff : /soc/aips-bus at 02000000/pxp at 020f0000
> 020f8000-020fbfff : /soc/aips-bus at 02000000/lcdif at 020f8000
> 020fc000-020fffff : /soc/aips-bus at 02000000/dcp at 020fc000
> 02184000-021841ff : /soc/aips-bus at 02100000/usb at 02184000
>   02184000-021841ff : /soc/aips-bus at 02100000/usb at 02184000
> 02184800-021849ff : /soc/aips-bus at 02100000/usbmisc at 02184800
> 02194000-02197fff : mmc1
> 021a0000-021a3fff : /soc/aips-bus at 02100000/i2c at 021a0000
> 021bc000-021bffff : /soc/aips-bus at 02100000/ocotp at 021bc000
> 02200000-02203fff : galcore register region
> 02204000-02207fff : galcore register region
> 04000000-09ffffff : Crash kernel
> 80000000-8fffffff : System RAM
>   80008000-8082633f : Kernel code
>   80890000-8094ee93 : Kernel data

Thanks,
Ros



More information about the kexec mailing list