[PATCH v3 12/17] x86/crash: Use num_possible_cpus() for elfcorehdr size

Sourabh Jain sourabhjain at linux.ibm.com
Tue Sep 1 23:14:30 PDT 2026


Hello Jinjie,

This patch makes the below patch redundant..
https://lore.kernel.org/all/20260826073527.21487-2-ionut.nechita@windriver.com/

I suggest dropping the first patch from the above series and including
the second patch from that series in this patch series with the updated
comment.

- Sourabh Jain


On 26/08/26 14:55, Jinjie Ruan wrote:
> Use num_possible_cpus() instead of CONFIG_NR_CPUS to calculate the
> elfcorehdr buffer size, matching what crash_prepare_elf64_headers()
> already uses for the actual header content.
>
> This avoids over-allocation when the system has fewer possible CPUs
> than the compile-time limit, and aligns x86 with PowerPC.
>
> Signed-off-by: Jinjie Ruan <ruanjinjie at huawei.com>
> ---
>   arch/x86/kernel/crash.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> index a3bf786286d4..afe2aea19f47 100644
> --- a/arch/x86/kernel/crash.c
> +++ b/arch/x86/kernel/crash.c
> @@ -369,9 +369,9 @@ int crash_load_segments(struct kimage *image)
>   	 * maximum CPUs and maximum memory ranges.
>   	 */
>   	if (IS_ENABLED(CONFIG_MEMORY_HOTPLUG))
> -		pnum = 2 + CONFIG_NR_CPUS + CONFIG_CRASH_MAX_MEMORY_RANGES;
> +		pnum = 2 + num_possible_cpus() + CONFIG_CRASH_MAX_MEMORY_RANGES;
>   	else
> -		pnum += 2 + CONFIG_NR_CPUS;
> +		pnum += 2 + num_possible_cpus();
>   
>   	if (pnum < (unsigned long)PN_XNUM) {
>   		kbuf.memsz = elf64_phdr_size(pnum);
> @@ -429,7 +429,7 @@ unsigned int arch_crash_get_elfcorehdr_size(void)
>   	unsigned int sz;
>   
>   	/* kernel_map, VMCOREINFO and maximum CPUs */
> -	sz = 2 + CONFIG_NR_CPUS;
> +	sz = 2 + num_possible_cpus();
>   	if (IS_ENABLED(CONFIG_MEMORY_HOTPLUG))
>   		sz += CONFIG_CRASH_MAX_MEMORY_RANGES;
>   	sz *= sizeof(Elf64_Phdr);




More information about the kexec mailing list