Message ID | 20221216162141.1701255-1-alexghiti@rivosinc.com (mailing list archive) |
---|---|
Headers | show |
Series | RISC-V kasan rework | expand |
Hey Alex! On Fri, Dec 16, 2022 at 05:21:35PM +0100, Alexandre Ghiti wrote: > As described in patch 2, our current kasan implementation is intricate, > so I tried to simplify the implementation and mimic what arm64/x86 are > doing. I'm not sure that I am going to have much to contribute for this series, but I did notice some difficulty actually applying it. At whatever point you sent it, the pwbot did actually give it a shakedown - but it doesn't apply any of the "usual suspects" tree wise. It looks like multiple patches interact with commit 9f2ac64d6ca6 ("riscv: mm: add missing memcpy in kasan_init"), which caused me some difficulty that was not just a trivial resolution. A rebase on top of v6.2-rc1 is (I would imagine) a good idea for this series? For the future, perhaps using the base-commit arg would be useful for stuff like this :) > In addition it fixes UEFI bootflow with a kasan kernel and kasan inline > instrumentation: all kasan configurations were tested on a large ubuntu > kernel with success with KASAN_KUNIT_TEST and KASAN_MODULE_TEST. > > inline ubuntu config + uefi: > sv39: OK > sv48: OK > sv57: OK > > outline ubuntu config + uefi: > sv39: OK > sv48: OK > sv57: OK > > Actually 1 test always fails with KASAN_KUNIT_TEST that I have to check: > # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan__test.c:1020 > KASAN failure expected in "set_bit(nr, addr)", but none occurrred > > Note that Palmer recently proposed to remove COMMAND_LINE_SIZE from the > userspace abi > https://lore.kernel.org/lkml/20221211061358.28035-1-palmer@rivosinc.com/T/ > so that we can finally increase the command line to fit all kasan kernel > parameters. > > All of this should hopefully fix the syzkaller riscv build that has been > failing for a few months now, any test is appreciated and if I can help > in any way, please ask. > > Alexandre Ghiti (6): > riscv: Split early and final KASAN population functions > riscv: Rework kasan population functions > riscv: Move DTB_EARLY_BASE_VA to the kernel address space > riscv: Fix EFI stub usage of KASAN instrumented string functions > riscv: Fix ptdump when KASAN is enabled > riscv: Unconditionnally select KASAN_VMALLOC if KASAN > > arch/riscv/Kconfig | 1 + > arch/riscv/kernel/image-vars.h | 8 - > arch/riscv/mm/init.c | 2 +- > arch/riscv/mm/kasan_init.c | 511 ++++++++++++++------------ > arch/riscv/mm/ptdump.c | 24 +- > drivers/firmware/efi/libstub/Makefile | 7 +- > drivers/firmware/efi/libstub/string.c | 133 +++++++ > 7 files changed, 435 insertions(+), 251 deletions(-) > > -- > 2.37.2 > >