Re: [PATCH] slab: Decouple slab_debug and no_hash_pointers

Vlastimil Babka
2025-04-11T07:47:22Z

On 4/10/25 19:44, Kees Cook wrote:
> Some system owners use slab_debug=FPZ (or similar) as a hardening option,
> but do not want to be forced into having kernel addresses exposed due
> to the implicit "no_hash_pointers" boot param setting.[1]
>
> Introduce the "hash_pointers" boot param, which defaults to "auto"
> (the current behavior), but also includes "always" (forcing on hashing
> even when "slab_debug=..." is defined), and "never". The existing
> "no_hash_pointers" boot param becomes an alias for "hash_pointers=never".
>
> This makes it possible to boot with "slab_debug=FPZ hash_pointers=always".
>
> Link: https://github.com/KSPP/linux/issues/368 [1]
> Fixes: 792702911f58 ("slub: force on no_hash_pointers when slub_debug is enabled")
> Co-developed-by: Sergio Perez Gonzalez <sperezglz@gmail.com>
> Signed-off-by: Sergio Perez Gonzalez <sperezglz@gmail.com>
> Signed-off-by: Kees Cook <kees@kernel.org>

I like how this makes things more generic. Perhaps there are more debug
boot/config options that could tie into the hash_pointers=auto and are even
more obvious than slab_debug in the sense that you would really only enable
them in debugging/CI runs when you do not care about the info leaks but want
as much useful debug info as possible (KASAN etc?).

Given how this changes mostly printk code and is in fact only a small change
to slab, I'll wait first if printk maintainers want to take this patch. In
that case please add

Acked-by: Vlastimil Babka <vbabka@suse.cz>

Thanks!