You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This report is generated where it was not possible to determine the other
95
75
racing thread, but a race was inferred due to the data value of the watched
96
-
memory location having changed. These can occur either due to missing
97
-
instrumentation or e.g. DMA accesses. These reports will only be generated if
98
-
``CONFIG_KCSAN_REPORT_RACE_UNKNOWN_ORIGIN=y`` (selected by default).
76
+
memory location having changed. These reports always show a "value changed"
77
+
line. A common reason for reports of this type are missing instrumentation in
78
+
the racing thread, but could also occur due to e.g. DMA accesses. Such reports
79
+
are shown only if ``CONFIG_KCSAN_REPORT_RACE_UNKNOWN_ORIGIN=y``, which is
80
+
enabled by default.
99
81
100
82
Selective analysis
101
83
~~~~~~~~~~~~~~~~~~
@@ -106,7 +88,8 @@ the below options are available:
106
88
107
89
* KCSAN understands the ``data_race(expr)`` annotation, which tells KCSAN that
108
90
any data races due to accesses in ``expr`` should be ignored and resulting
109
-
behaviour when encountering a data race is deemed safe.
91
+
behaviour when encountering a data race is deemed safe. Please see
92
+
`"Marking Shared-Memory Accesses" in the LKMM`_ for more information.
110
93
111
94
* Disabling data race detection for entire functions can be accomplished by
112
95
using the function attribute ``__no_kcsan``::
@@ -128,6 +111,8 @@ the below options are available:
128
111
129
112
KCSAN_SANITIZE := n
130
113
114
+
.. _"Marking Shared-Memory Accesses" in the LKMM: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/memory-model/Documentation/access-marking.txt
115
+
131
116
Furthermore, it is possible to tell KCSAN to show or hide entire classes of
132
117
data races, depending on preferences. These can be changed via the following
0 commit comments