Messages in this thread Patch in this message | | | From | "Paul E. McKenney" <> | Subject | [PATCH tip/core/rcu 3/6] Documentation/memory-barriers.txt: Conditional must use prior load | Date | Mon, 17 Feb 2014 13:26:50 -0800 |
| |
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
A control dependency consists of a load, a conditional that depends on that load, and a store. This commit emphasizes this point in the summary.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> --- Documentation/memory-barriers.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index ad6db1d48f1f..f2668c19807e 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt @@ -724,7 +724,8 @@ In summary: later loads, smp_mb(). (*) Control dependencies require at least one run-time conditional - between the prior load and the subsequent store. If the compiler + between the prior load and the subsequent store, and this + conditional must involve the prior load. If the compiler is able to optimize the conditional away, it will have also optimized away the ordering. Careful use of ACCESS_ONCE() can help to preserve the needed conditional. -- 1.8.1.5
| |