[PATCH] powerpc/kasan: Limit KASAN thread size increase to 32KB

Benjamin Gray bgray at linux.ibm.com
Tue Feb 13 10:19:25 AEDT 2024


Don't know why the previous mail went blank.

On Mon, 2024-02-12 at 17:42 +1100, Michael Ellerman wrote:
> KASAN is seen to increase stack usage, to the point that it was
> reported
> to lead to stack overflow on some 32-bit machines (see link).
> 
> To avoid overflows the stack size was doubled for KASAN builds in
> commit 3e8635fb2e07 ("powerpc/kasan: Force thread size increase with
> KASAN").
> 
> However with a 32KB stack size to begin with, the doubling leads to a
> 64KB stack, which causes build errors:
>   arch/powerpc/kernel/switch.S:249: Error: operand out of range
> (0x000000000000fe50 is not between 0xffffffffffff8000 and
> 0x0000000000007fff)
> 
> Although the asm could be reworked, in practice a 32KB stack seems
> sufficient even for KASAN builds - the additional usage seems to be
> in
> the 2-3KB range for a 64-bit KASAN build.
> 
> So only increase the stack for KASAN if the stack size is < 32KB.
> 
> Link:
> https://lore.kernel.org/linuxppc-dev/bug-207129-206035@https.bugzilla.kernel.org%2F/
> Reported-by: Spoorthy <spoorthy at linux.ibm.com>
> Reported-by: Benjamin Gray <bgray at linux.ibm.com>
> Fixes: 18f14afe2816 ("powerpc/64s: Increase default stack size to
> 32KB")
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>

Reviewed-by: Benjamin Gray <bgray at linux.ibm.com>

> ---
>  arch/powerpc/include/asm/thread_info.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/include/asm/thread_info.h
> b/arch/powerpc/include/asm/thread_info.h
> index bf5dde1a4114..15c5691dd218 100644
> --- a/arch/powerpc/include/asm/thread_info.h
> +++ b/arch/powerpc/include/asm/thread_info.h
> @@ -14,7 +14,7 @@
>  
>  #ifdef __KERNEL__
>  
> -#ifdef CONFIG_KASAN
> +#if defined(CONFIG_KASAN) && CONFIG_THREAD_SHIFT < 15
>  #define MIN_THREAD_SHIFT	(CONFIG_THREAD_SHIFT + 1)
>  #else
>  #define MIN_THREAD_SHIFT	CONFIG_THREAD_SHIFT



More information about the Linuxppc-dev mailing list