Hi, Enze, I applied this series (with some small modifications) together with KASAN at: https://github.com/chenhuacai/linux/commits/loongarch-next Please confirm everything works well for you. Huacai On Tue, Aug 1, 2023 at 10:59 AM Enze Li <lienze@xxxxxxxxxx> wrote: > > Hi all, > > This patchset adds KFENCE support on LoongArch. > > To run the testcases, you will need to enable the following options, > > -> Kernel hacking > [*] Tracers > [*] Support for tracing block IO actions (NEW) > -> Kernel Testing and Coverage > <*> KUnit - Enable support for unit tests > > and then, > > -> Kernel hacking > -> Memory Debugging > [*] KFENCE: low-overhead sampling-based memory safety error detector (NEW) > <*> KFENCE integration test suite (NEW) > > With these options enabled, KFENCE will be tested during kernel startup. > And normally, you might get the following feedback, > > ======================================================== > [ 35.326363 ] # kfence: pass:23 fail:0 skip:2 total:25 > [ 35.326486 ] # Totals: pass:23 fail:0 skip:2 total:25 > [ 35.326621 ] ok 1 kfence > ======================================================== > > you might notice that 2 testcases have been skipped. If you tend to run > all testcases, please enable CONFIG_INIT_ON_FREE_DEFAULT_ON, you can > find it here, > > -> Security options > -> Kernel hardening options > -> Memory initialization > [*] Enable heap memory zeroing on free by default > > and you might get all testcases passed. > ======================================================== > [ 35.531860 ] # kfence: pass:25 fail:0 skip:0 total:25 > [ 35.531999 ] # Totals: pass:25 fail:0 skip:0 total:25 > [ 35.532135 ] ok 1 kfence > ======================================================== > > v3: > * Address Huacai's comments. > * Fix a bug that Jackie Liu pointed out. > * Rewrite arch_stack_walk() with the suggestion of Jinyang He. > > v2: > * Address Huacai's comments. > * Fix typos in commit message. > > Thanks, > Enze > > Enze Li (4): > KFENCE: Defer the assignment of the local variable addr > LoongArch: mm: Add page table mapped mode support > LoongArch: Get stack without NMI when providing regs parameter > LoongArch: Add KFENCE support > > arch/loongarch/Kconfig | 1 + > arch/loongarch/include/asm/kfence.h | 66 ++++++++++++++++++++++++++++ > arch/loongarch/include/asm/page.h | 8 +++- > arch/loongarch/include/asm/pgtable.h | 16 ++++++- > arch/loongarch/kernel/stacktrace.c | 18 ++++---- > arch/loongarch/mm/fault.c | 22 ++++++---- > arch/loongarch/mm/pgtable.c | 7 +++ > mm/kfence/core.c | 5 ++- > 8 files changed, 123 insertions(+), 20 deletions(-) > create mode 100644 arch/loongarch/include/asm/kfence.h > > -- > 2.34.1 >