Add Kernel Concurrency Sanitiser support for PPC64. Doing so involves exclusion of a number of compilation units from instrumentation, as was done with KASAN.
KCSAN uses watchpoints on memory accesses to enforce the semantics of the Linux kernel memory model, notifying the user of observed data races which have not been declared to be intended in source through the data_race() macro, in order to remove false positives. A number of such race conditions are identified. This patch series provides support for the instrumentation, with bug fixes as well as removal of false positives to be issued in future patches. v3: Restrict support to PPC64 as kcsan code expects support for __atomic* builtins for 64-bit atomic types. v2: Implement __smp_mb() in terms of __mb() to avoid multiple calls to kcsan_mb(). Link: https://lore.kernel.org/linuxppc-dev/20230201043438.1301212-4-rmcl...@linux.ibm.com/ v1: https://lore.kernel.org/linuxppc-dev/20230131234859.1275125-1-rmcl...@linux.ibm.com/ Rohan McLure (5): powerpc: kcsan: Add exclusions from instrumentation powerpc: kcsan: Exclude udelay to prevent recursive instrumentation powerpc: kcsan: Memory barriers semantics powerpc: kcsan: Prevent recursive instrumentation with IRQ save/restores powerpc: kcsan: Add KCSAN Support arch/powerpc/Kconfig | 1 + arch/powerpc/include/asm/barrier.h | 12 ++++++------ arch/powerpc/kernel/Makefile | 10 ++++++++++ arch/powerpc/kernel/irq_64.c | 6 +++--- arch/powerpc/kernel/time.c | 4 ++-- arch/powerpc/kernel/trace/Makefile | 1 + arch/powerpc/kernel/vdso/Makefile | 1 + arch/powerpc/lib/Makefile | 2 ++ arch/powerpc/purgatory/Makefile | 1 + arch/powerpc/xmon/Makefile | 1 + 10 files changed, 28 insertions(+), 11 deletions(-) -- 2.37.2