Re: [PATCH] preempt_rt: increase PERCPU_DYNAMIC_SIZE_SHIFT for slab randomization

Arnd Bergmann
2024-10-07T11:00:08Z

On Mon, Oct 7, 2024, at 10:43, Sebastian Andrzej Siewior wrote:
> On 2024-10-04 09:56:56 [+0000], Arnd Bergmann wrote:
> How bad is it, to have PERCPU_DYNAMIC_SIZE_SHIFT unconditionally set to
> 13? If it is bad could we restrict it with LOCKDEP and PAGE_SIZE > 4KiB?
>
> So maybe something like this:
>
> diff --git a/include/linux/percpu.h b/include/linux/percpu.h
> index b6321fc491598..52b5ea663b9f0 100644
> --- a/include/linux/percpu.h
> +++ b/include/linux/percpu.h
> @@ -41,7 +41,11 @@
> PCPU_MIN_ALLOC_SHIFT)
>
> #ifdef CONFIG_RANDOM_KMALLOC_CACHES
> -#define PERCPU_DYNAMIC_SIZE_SHIFT 12
> +# if defined(CONFIG_LOCKDEP) && !defined(CONFIG_PAGE_SIZE_4KB)
> +# define PERCPU_DYNAMIC_SIZE_SHIFT 13
> +# else
> +# define PERCPU_DYNAMIC_SIZE_SHIFT 12
> +#endif /* LOCKDEP and PAGE_SIZE > 4KiB */
> #else
> #define PERCPU_DYNAMIC_SIZE_SHIFT 10
> #endif

I think that's fine. If you have lockdep and large page sizes,
the percpu memory area is entirely lost in the noise of the
overhead you already get.

For your version:

Acked-by: Arnd Bergmann <arnd@arndb.de>
Reported-by: Arnd Bergmann <arnd@arndb.de>

Can you pick that up for rt fixes (if you already have a tree)
or send it to Andrew for the mm tree? Feel free to take my
changelog text.

Arnd