@@ -6,7 +6,8 @@ normal accesses to shared memory, that is "normal" as in accesses that do
6
6
not use read-modify-write atomic operations. It also describes how to
7
7
document these accesses, both with comments and with special assertions
8
8
processed by the Kernel Concurrency Sanitizer (KCSAN). This discussion
9
- builds on an earlier LWN article [1].
9
+ builds on an earlier LWN article [1] and Linux Foundation mentorship
10
+ session [2].
10
11
11
12
12
13
ACCESS-MARKING OPTIONS
@@ -31,7 +32,7 @@ example:
31
32
WRITE_ONCE(a, b + data_race(c + d) + READ_ONCE(e));
32
33
33
34
Neither plain C-language accesses nor data_race() (#1 and #2 above) place
34
- any sort of constraint on the compiler's choice of optimizations [2 ].
35
+ any sort of constraint on the compiler's choice of optimizations [3 ].
35
36
In contrast, READ_ONCE() and WRITE_ONCE() (#3 and #4 above) restrict the
36
37
compiler's use of code-motion and common-subexpression optimizations.
37
38
Therefore, if a given access is involved in an intentional data race,
@@ -594,5 +595,8 @@ REFERENCES
594
595
[1] "Concurrency bugs should fear the big bad data-race detector (part 2)"
595
596
https://lwn.net/Articles/816854/
596
597
597
- [2] "Who's afraid of a big bad optimizing compiler?"
598
+ [2] "The Kernel Concurrency Sanitizer"
599
+ https://www.linuxfoundation.org/webinars/the-kernel-concurrency-sanitizer
600
+
601
+ [3] "Who's afraid of a big bad optimizing compiler?"
598
602
https://lwn.net/Articles/793253/
0 commit comments