On Wed, Aug 02 2023 at 11:12:23 PM +0800, Huacai Chen wrote: > 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. Hi Huacai, Thanks for your patience these days. I've tested this on both a physical machine and a qemu VM. It works well. BTW, if there're any modifications, bugs or improvments to KFENCE on LoongArch in the future, feel free to Cc me. I'll appreciate it. :) Best Regards, Enze > > 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 >>