linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH -tip 00/10] Fix KCSAN for new ONCE (require Clang 11)
@ 2020-05-15 15:03 Marco Elver
  2020-05-15 15:03 ` [PATCH -tip 01/10] ubsan, kcsan: don't combine sanitizer with kcov on clang Marco Elver
                   ` (10 more replies)
  0 siblings, 11 replies; 15+ messages in thread
From: Marco Elver @ 2020-05-15 15:03 UTC (permalink / raw)
  To: elver
  Cc: paulmck, dvyukov, glider, andreyknvl, kasan-dev, linux-kernel,
	tglx, mingo, peterz, will, clang-built-linux

This patch series is the conclusion to [1], where we determined that due
to various interactions with no_sanitize attributes and the new
{READ,WRITE}_ONCE(), KCSAN will require Clang 11 or later. Other
sanitizers are largely untouched, and only KCSAN now has a hard
dependency on Clang 11. To test, a recent Clang development version will
suffice [2]. While a little inconvenient for now, it is hoped that in
future we may be able to fix GCC and re-enable GCC support.

The patch "kcsan: Restrict supported compilers" contains a detailed list
of requirements that led to this decision.

Most of the patches are related to KCSAN, however, the first patch also
includes an UBSAN related fix and is a dependency for the remaining
ones. The last 2 patches clean up the attributes by moving them to the
right place, and fix KASAN's way of defining __no_kasan_or_inline,
making it consistent with KCSAN.

The series has been tested by running kcsan-test several times and
completed successfully.

[1] https://lkml.kernel.org/r/CANpmjNOGFqhtDa9wWpXs2kztQsSozbwsuMO5BqqW0c0g0zGfSA@mail.gmail.com
[2] https://github.com/llvm/llvm-project

Arnd Bergmann (1):
  ubsan, kcsan: don't combine sanitizer with kcov on clang

Marco Elver (9):
  kcsan: Avoid inserting __tsan_func_entry/exit if possible
  kcsan: Support distinguishing volatile accesses
  kcsan: Pass option tsan-instrument-read-before-write to Clang
  kcsan: Remove 'noinline' from __no_kcsan_or_inline
  kcsan: Restrict supported compilers
  kcsan: Update Documentation to change supported compilers
  READ_ONCE, WRITE_ONCE: Remove data_race() wrapping
  compiler.h: Move function attributes to compiler_types.h
  compiler_types.h, kasan: Use __SANITIZE_ADDRESS__ instead of
    CONFIG_KASAN to decide inlining

 Documentation/dev-tools/kcsan.rst |  9 +------
 include/linux/compiler.h          | 35 ++-----------------------
 include/linux/compiler_types.h    | 32 +++++++++++++++++++++++
 kernel/kcsan/core.c               | 43 +++++++++++++++++++++++++++++++
 lib/Kconfig.kcsan                 | 20 +++++++++++++-
 lib/Kconfig.ubsan                 | 11 ++++++++
 scripts/Makefile.kcsan            | 15 ++++++++++-
 7 files changed, 122 insertions(+), 43 deletions(-)

-- 
2.26.2.761.g0e0b3e54be-goog


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-05-21 11:12 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-15 15:03 [PATCH -tip 00/10] Fix KCSAN for new ONCE (require Clang 11) Marco Elver
2020-05-15 15:03 ` [PATCH -tip 01/10] ubsan, kcsan: don't combine sanitizer with kcov on clang Marco Elver
2020-05-15 15:03 ` [PATCH -tip 02/10] kcsan: Avoid inserting __tsan_func_entry/exit if possible Marco Elver
2020-05-15 15:03 ` [PATCH -tip 03/10] kcsan: Support distinguishing volatile accesses Marco Elver
2020-05-15 15:03 ` [PATCH -tip 04/10] kcsan: Pass option tsan-instrument-read-before-write to Clang Marco Elver
2020-05-15 15:03 ` [PATCH -tip 05/10] kcsan: Remove 'noinline' from __no_kcsan_or_inline Marco Elver
2020-05-15 15:03 ` [PATCH -tip 06/10] kcsan: Restrict supported compilers Marco Elver
2020-05-15 15:03 ` [PATCH -tip 07/10] kcsan: Update Documentation to change " Marco Elver
2020-05-15 15:03 ` [PATCH -tip 08/10] READ_ONCE, WRITE_ONCE: Remove data_race() wrapping Marco Elver
2020-05-21  9:47   ` Marco Elver
2020-05-21 10:18     ` Marco Elver
2020-05-21 10:22       ` Will Deacon
2020-05-15 15:03 ` [PATCH -tip 09/10] compiler.h: Move function attributes to compiler_types.h Marco Elver
2020-05-15 15:03 ` [PATCH -tip 10/10] compiler_types.h, kasan: Use __SANITIZE_ADDRESS__ instead of CONFIG_KASAN to decide inlining Marco Elver
2020-05-21 11:11 ` [PATCH -tip 00/10] Fix KCSAN for new ONCE (require Clang 11) Marco Elver

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).