On Wed, May 13, 2020 at 01:48:41PM +0200, Marco Elver wrote: > Disabling most instrumentation for arch/x86 is reasonable. Also fine > with the __READ_ONCE/__WRITE_ONCE changes (your improved > compiler-friendlier version). > > We likely can't have both: still instrument __READ_ONCE/__WRITE_ONCE > (as Will suggested) *and* avoid double-instrumentation in arch_atomic. > If most use-cases of __READ_ONCE/__WRITE_ONCE are likely to use > data_race() or KCSAN_SANITIZE := n anyway, I'd say it's reasonable for > now.
Right, if/when people want sanitize crud enabled for x86 I need something that: - can mark a function 'no_sanitize' and all code that gets inlined into that function must automagically also not get sanitized. ie. make inline work like macros (again). And optionally: - can mark a function explicitly 'sanitize', and only when an explicit sanitize and no_sanitize mix in inlining give the current incompatible attribute splat. That way we can have the noinstr function attribute imply no_sanitize and frob the DEFINE_IDTENTRY*() macros to use (a new) sanitize_or_inline helper instead of __always_inline for __##func().

