On Tue, 5 Aug 2025 at 08:23, 'Baoquan He' via kasan-dev <kasan-...@googlegroups.com> wrote: > > Currently only hw_tags mode of kasan can be enabled or disabled with > kernel parameter kasan=on|off for built kernel. For kasan generic and > sw_tags mode, there's no way to disable them once kernel is built. > This is not convenient sometime, e.g in system kdump is configured. > When the 1st kernel has KASAN enabled and crash triggered to switch to > kdump kernel, the generic or sw_tags mode will cost much extra memory > for kasan shadow while in fact it's meaningless to have kasan in kdump > kernel.
Are you using KASAN generic or SW-tags is production? If in a test environment, is the overhead of the kdump kernel really unacceptable? > So this patchset moves the kasan=on|off out of hw_tags scope and into > common code to make it visible in generic and sw_tags mode too. Then we > can add kasan=off in kdump kernel to reduce the unneeded meomry cost for > kasan. > > Test: > ===== > I only took test on x86_64 for generic mode, and on arm64 for > generic, sw_tags and hw_tags mode. All of them works well. Does it also work for CONFIG_KASAN_INLINE? > However when I tested sw_tags on a HPE apollo arm64 machine, it always > breaks kernel with a KASAN bug. Even w/o this patchset applied, the bug > can always be seen too. > > "BUG: KASAN: invalid-access in pcpu_alloc_noprof+0x42c/0x9a8" > > I haven't got root cause of the bug, will report the bug later in > another thread. > ==== > > Baoquan He (4): > mm/kasan: add conditional checks in functions to return directly if > kasan is disabled > mm/kasan: move kasan= code to common place > mm/kasan: don't initialize kasan if it's disabled > mm/kasan: make kasan=on|off take effect for all three modes > > arch/arm/mm/kasan_init.c | 6 +++++ > arch/arm64/mm/kasan_init.c | 7 ++++++ > arch/loongarch/mm/kasan_init.c | 5 ++++ > arch/powerpc/mm/kasan/init_32.c | 8 +++++- > arch/powerpc/mm/kasan/init_book3e_64.c | 6 +++++ > arch/powerpc/mm/kasan/init_book3s_64.c | 6 +++++ > arch/riscv/mm/kasan_init.c | 6 +++++ > arch/um/kernel/mem.c | 6 +++++ > arch/x86/mm/kasan_init_64.c | 6 +++++ > arch/xtensa/mm/kasan_init.c | 6 +++++ > include/linux/kasan-enabled.h | 11 ++------ > mm/kasan/common.c | 27 ++++++++++++++++++++ > mm/kasan/generic.c | 20 +++++++++++++-- > mm/kasan/hw_tags.c | 35 ++------------------------ > mm/kasan/init.c | 6 +++++ > mm/kasan/quarantine.c | 3 +++ > mm/kasan/shadow.c | 23 ++++++++++++++++- > mm/kasan/sw_tags.c | 9 +++++++ > 18 files changed, 150 insertions(+), 46 deletions(-) > > -- > 2.41.0 > > -- > You received this message because you are subscribed to the Google Groups > "kasan-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to kasan-dev+unsubscr...@googlegroups.com. > To view this discussion visit > https://groups.google.com/d/msgid/kasan-dev/20250805062333.121553-1-bhe%40redhat.com.