When adding CPUs to an already big system (test show it seems to start with more than 256 CPUs), the kernel is showing error messages when building the FDT for the kexec kernel (kdump or kexec).
It's worth to mention that the kdump kernel is reloaded after a CPU add operation. The messages look like (property's name may vary): 10175.025675] Unable to add 32-64-bridge property: FDT_ERR_NOSPACE This happens because the size of the FDT is computed based on the size of the FDT the kernel received at boot time. There is additional space added in kexec_extra_fdt_size_ppc64() for the added memory but nothing is done for the added CPUs. This patch adds this feature so adding new CPUs will increase the size of the FDT for the kexec kernel. To compute the additional size required, the number of CPU nodes of the initial FDT (the one the kernel receive at boot time) are recorded. When a kexec FDT is created, the number of CPU nodes in the current FDT is used to compute the additional size. The first patch of this series is creating a variable provided by the boot code when parsing the initial FDT at boot time. The second patch is computing the required additional space. This has been tested on a PowerVM LPAR running with than 256 CPUs in shared mode, adding 320 CPUs to this LPAR. Laurent Dufour (2): powerpc: export the CPU node count powerpc: Take in account addition CPU node when building kexec FDT arch/powerpc/include/asm/kexec_ranges.h | 2 + arch/powerpc/kernel/prom.c | 4 ++ arch/powerpc/kexec/file_load_64.c | 59 ++++++++++++++++++++++++- 3 files changed, 64 insertions(+), 1 deletion(-) -- 2.38.1