Message ID | 20190806233827.16454-1-dja@axtens.net (mailing list archive) |
---|---|
Headers | show |
Series | powerpc: KASAN for 64-bit Book3S on Radix | expand |
Le 07/08/2019 à 01:38, Daniel Axtens a écrit : > Building on the work of Christophe, Aneesh and Balbir, I've ported > KASAN to 64-bit Book3S kernels running on the Radix MMU. > > It builds on top Christophe's work on 32bit. It also builds on my > generic KASAN_VMALLOC series, available at: > https://patchwork.kernel.org/project/linux-mm/list/?series=153209 Would be good to send that one to the powerpc list as well. > > This provides full inline instrumentation on radix, but does require > that you be able to specify the amount of memory on the system at > compile time. More details in patch 4. > > Notable changes from the RFC: > > - I've dropped Book3E 64-bit for now. > > - Now instead of hacking into the KASAN core to disable module > allocations, we use KASAN_VMALLOC. > > - More testing, including on real hardware. This revealed that > discontiguous memory is a bit of a headache, at the moment we > must disable memory not contiguous from 0. > > - Update to deal with kasan bitops instrumentation that landed > between RFC and now. This is rather independant and also applies to PPC32. Could it be a separate series that Michael could apply earlier ? Christophe > > - Documentation! > > - Various cleanups and tweaks. > > I am getting occasional problems on boot of real hardware where it > seems vmalloc space mappings don't get installed in time. (We get a > BUG that memory is not accessible, but by the time we hit xmon the > memory then is accessible!) It happens once every few boots. I haven't > yet been able to figure out what is happening and why. I'm going to > look in to it, but I think the patches are in good enough shape to > review while I work on it. > > Regards, > Daniel > > Daniel Axtens (4): > kasan: allow arches to provide their own early shadow setup > kasan: support instrumented bitops with generic non-atomic bitops > powerpc: support KASAN instrumentation of bitops > powerpc: Book3S 64-bit "heavyweight" KASAN support > > Documentation/dev-tools/kasan.rst | 7 +- > Documentation/powerpc/kasan.txt | 111 ++++++++++++++ > arch/powerpc/Kconfig | 4 + > arch/powerpc/Kconfig.debug | 21 +++ > arch/powerpc/Makefile | 7 + > arch/powerpc/include/asm/bitops.h | 25 ++-- > arch/powerpc/include/asm/book3s/64/radix.h | 5 + > arch/powerpc/include/asm/kasan.h | 35 ++++- > arch/powerpc/kernel/process.c | 8 ++ > arch/powerpc/kernel/prom.c | 57 +++++++- > arch/powerpc/mm/kasan/Makefile | 1 + > arch/powerpc/mm/kasan/kasan_init_book3s_64.c | 76 ++++++++++ > include/asm-generic/bitops-instrumented.h | 144 ++++++++++--------- > include/linux/kasan.h | 2 + > lib/Kconfig.kasan | 3 + > mm/kasan/init.c | 10 ++ > 16 files changed, 431 insertions(+), 85 deletions(-) > create mode 100644 Documentation/powerpc/kasan.txt > create mode 100644 arch/powerpc/mm/kasan/kasan_init_book3s_64.c >
Christophe Leroy <christophe.leroy@c-s.fr> writes: > Le 07/08/2019 à 01:38, Daniel Axtens a écrit : >> Building on the work of Christophe, Aneesh and Balbir, I've ported >> KASAN to 64-bit Book3S kernels running on the Radix MMU. >> >> It builds on top Christophe's work on 32bit. It also builds on my >> generic KASAN_VMALLOC series, available at: >> https://patchwork.kernel.org/project/linux-mm/list/?series=153209 > > Would be good to send that one to the powerpc list as well. > Done for v4. >> >> This provides full inline instrumentation on radix, but does require >> that you be able to specify the amount of memory on the system at >> compile time. More details in patch 4. >> >> Notable changes from the RFC: >> >> - I've dropped Book3E 64-bit for now. >> >> - Now instead of hacking into the KASAN core to disable module >> allocations, we use KASAN_VMALLOC. >> >> - More testing, including on real hardware. This revealed that >> discontiguous memory is a bit of a headache, at the moment we >> must disable memory not contiguous from 0. >> >> - Update to deal with kasan bitops instrumentation that landed >> between RFC and now. > > This is rather independant and also applies to PPC32. Could it be a > separate series that Michael could apply earlier ? > Will do this and address your feedback on the rest of the series later. Regards, Daniel > Christophe > >> >> - Documentation! >> >> - Various cleanups and tweaks. >> >> I am getting occasional problems on boot of real hardware where it >> seems vmalloc space mappings don't get installed in time. (We get a >> BUG that memory is not accessible, but by the time we hit xmon the >> memory then is accessible!) It happens once every few boots. I haven't >> yet been able to figure out what is happening and why. I'm going to >> look in to it, but I think the patches are in good enough shape to >> review while I work on it. >> >> Regards, >> Daniel >> >> Daniel Axtens (4): >> kasan: allow arches to provide their own early shadow setup >> kasan: support instrumented bitops with generic non-atomic bitops >> powerpc: support KASAN instrumentation of bitops >> powerpc: Book3S 64-bit "heavyweight" KASAN support >> >> Documentation/dev-tools/kasan.rst | 7 +- >> Documentation/powerpc/kasan.txt | 111 ++++++++++++++ >> arch/powerpc/Kconfig | 4 + >> arch/powerpc/Kconfig.debug | 21 +++ >> arch/powerpc/Makefile | 7 + >> arch/powerpc/include/asm/bitops.h | 25 ++-- >> arch/powerpc/include/asm/book3s/64/radix.h | 5 + >> arch/powerpc/include/asm/kasan.h | 35 ++++- >> arch/powerpc/kernel/process.c | 8 ++ >> arch/powerpc/kernel/prom.c | 57 +++++++- >> arch/powerpc/mm/kasan/Makefile | 1 + >> arch/powerpc/mm/kasan/kasan_init_book3s_64.c | 76 ++++++++++ >> include/asm-generic/bitops-instrumented.h | 144 ++++++++++--------- >> include/linux/kasan.h | 2 + >> lib/Kconfig.kasan | 3 + >> mm/kasan/init.c | 10 ++ >> 16 files changed, 431 insertions(+), 85 deletions(-) >> create mode 100644 Documentation/powerpc/kasan.txt >> create mode 100644 arch/powerpc/mm/kasan/kasan_init_book3s_64.c >>