On Thu, Dec 12, 2019 at 01:07:08AM +0100, Marco Elver wrote: > Updates the section on "Selective analysis", listing all available > options to blacklist reporting data races for: specific accesses, > functions, compilation units, and entire directories. > > These options should provide adequate control for maintainers to opt out > of KCSAN analysis at varying levels of granularity. It is hoped to > provide the required control to reflect preferences for handling data > races across the kernel. > > Signed-off-by: Marco Elver <elver@xxxxxxxxxx> Both queued for testing and review, thank you! Thanx, Paul > --- > Documentation/dev-tools/kcsan.rst | 24 +++++++++++++++++------- > 1 file changed, 17 insertions(+), 7 deletions(-) > > diff --git a/Documentation/dev-tools/kcsan.rst b/Documentation/dev-tools/kcsan.rst > index a6f4f92df2fa..65a0be513b7d 100644 > --- a/Documentation/dev-tools/kcsan.rst > +++ b/Documentation/dev-tools/kcsan.rst > @@ -101,18 +101,28 @@ instrumentation or e.g. DMA accesses. > Selective analysis > ~~~~~~~~~~~~~~~~~~ > > -To disable KCSAN data race detection for an entire subsystem, add to the > -respective ``Makefile``:: > +It may be desirable to disable data race detection for specific accesses, > +functions, compilation units, or entire subsystems. For static blacklisting, > +the below options are available: > > - KCSAN_SANITIZE := n > +* KCSAN understands the ``data_race(expr)`` annotation, which tells KCSAN that > + any data races due to accesses in ``expr`` should be ignored and resulting > + behaviour when encountering a data race is deemed safe. > + > +* Disabling data race detection for entire functions can be accomplished by > + using the function attribute ``__no_kcsan`` (or ``__no_kcsan_or_inline`` for > + ``__always_inline`` functions). To dynamically control for which functions > + data races are reported, see the `debugfs`_ blacklist/whitelist feature. > > -To disable KCSAN on a per-file basis, add to the ``Makefile``:: > +* To disable data race detection for a particular compilation unit, add to the > + ``Makefile``:: > > KCSAN_SANITIZE_file.o := n > > -KCSAN also understands the ``data_race(expr)`` annotation, which tells KCSAN > -that any data races due to accesses in ``expr`` should be ignored and resulting > -behaviour when encountering a data race is deemed safe. > +* To disable data race detection for all compilation units listed in a > + ``Makefile``, add to the respective ``Makefile``:: > + > + KCSAN_SANITIZE := n > > debugfs > ~~~~~~~ > -- > 2.24.0.525.g8f36a354ae-goog >