[PATCH 0/2] Consider the size of the added CPU nodes in the kexec FDT
From: Laurent Dufour
Date: Fri Oct 28 2022 - 12:04:25 EST
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