[PATCH] ppc64/kdump: Limit kdump base to 512MB

Christophe Leroy christophe.leroy at csgroup.eu
Mon Sep 12 15:24:21 AEST 2022



Le 09/09/2022 à 19:40, Hari Bathini a écrit :
> Since commit e641eb03ab2b0 ("powerpc: Fix up the kdump base cap to
> 128M") memory for kdump kernel has been reserved at an offset of
> 128MB. This held up well for a long time before running into boot
> failure on LPARs having a lot of cores. Commit 7c5ed82b800d8
> ("powerpc: Set crashkernel offset to mid of RMA region") fixed this
> boot failure by moving the offset to mid of RMA region. Limit this
> offset to 512MB to avoid running into boot failures, during kdump
> kernel boot, due RTAS or other allocation restrictions.
> 
> Signed-off-by: Hari Bathini <hbathini at linux.ibm.com>
> ---
>   arch/powerpc/kexec/core.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/kexec/core.c b/arch/powerpc/kexec/core.c
> index cf84bfe9e27e..c2cbfcf81cea 100644
> --- a/arch/powerpc/kexec/core.c
> +++ b/arch/powerpc/kexec/core.c
> @@ -136,7 +136,7 @@ void __init reserve_crashkernel(void)
>   #ifdef CONFIG_PPC64
>   		/*
>   		 * On the LPAR platform place the crash kernel to mid of
> -		 * RMA size (512MB or more) to ensure the crash kernel
> +		 * RMA size (max. of 512MB) to ensure the crash kernel
>   		 * gets enough space to place itself and some stack to be
>   		 * in the first segment. At the same time normal kernel
>   		 * also get enough space to allocate memory for essential
> @@ -144,7 +144,7 @@ void __init reserve_crashkernel(void)
>   		 * kernel starts at 128MB offset on other platforms.
>   		 */
>   		if (firmware_has_feature(FW_FEATURE_LPAR))
> -			crashk_res.start = ppc64_rma_size / 2;
> +			crashk_res.start = min(0x20000000ULL, (ppc64_rma_size / 2));

Use SZ_512M instead of open coding.

Remove the ( ) around ppc64_rma_size / 2

>   		else
>   			crashk_res.start = min(0x8000000ULL, (ppc64_rma_size / 2));
>   #else

Christophe


More information about the Linuxppc-dev mailing list