Can the Kernel Concurrency Sanitizer Own Rust Code?
flat view
From: Marco Elver <elver@google.com>
Date: 2021-10-07 13:01:26
Hi Paul, Thanks for writing up https://paulmck.livejournal.com/64970.html -- these were also my thoughts. Similarly for KASAN. Sanitizer integration will also, over time, provide quantitative data on the rate of bugs in C code, unsafe-Rust, and of course safe-Rust code as well as any number of interactions between them once the fuzzers are let loose on Rust code. Re integrating KCSAN with Rust, this should be doable since rustc does support ThreadSanitizer instrumentation: https://rustc-dev-guide.rust-lang.org/sanitizers.html Just need to pass all the rest of the -mllvm options to rustc as well, and ensure it's not attempting to link against compiler-rt. I haven't tried, so wouldn't know how it currently behaves. Also of importance will be the __tsan_atomic*() instrumentation, which KCSAN already provides: my guess is that whatever subset of the LKMM Rust initially provides (looking at the current version it certainly is the case), the backend will lower them to LLVM atomic intrinsics [1], which ThreadSanitizer instrumentation turns into __tsan_atomic*() calls. [1] https://llvm.org/docs/Atomics.html Thanks, -- Marco