I noticed CMA init for fadump crashkernel memory is failing.

[    0.000000] cma: pageblock_order not yet initialized. Called during early boot? [    0.000000] fadump: Failed to init cma area for firmware-assisted dump,-22


kernel command-line:
BOOT_IMAGE=(ieee1275//vdevice/v-scsi@30000070/disk@8100000000000000,msdos2)/vmlinuz-7.0.0-rc1+ root=/dev/mapper/rhel_ltcden3--lp12-root ro rd.lvm.lv=rhel_ltcden3-lp12/root rd.lvm.lv=rhel_ltcden3-lp12/swap fadump=on crashkernel=3G


Same issue with kdump CMA reservation:

[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 200 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 100 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 50 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 25 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 12 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 6 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 3 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 1 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 0 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 0 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 0 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 0 MiB
[    0.000000][    T0] cma: pageblock_order not yet initialized. Called during early boot?
[    0.000000][    T0] cma: Failed to reserve 0 MiB
[    0.000000][    T0] crashkernel CMA reservation failed: 200 MB requested, 0 MB reserved in 0 ranges



kernel command-line:
# cat /proc/cmdline
noreboot crashkernel=200M crashkernel=200M,cma

Should be easy to reproduce it with powerpc defconfig:
make ARCH=powerpc defconfig

The crashkernel CMA init for fadump and kdump happens in:
arch/powerpc/kernel/setup-common.c -> setup_arch()

    initmem_init();

    /*
     * Reserve large chunks of memory for use by CMA for kdump, fadump, KVM and
     * hugetlb. These must be called after initmem_init(), so that
     * pageblock_order is initialised.
     */
    fadump_cma_init();
    kdump_cma_reserve();
    kvm_cma_reserve();

Has something changed for pageblock_order initialization?

- Sourabh Jain

Reply via email to