diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2014-02-12 00:28:06 +0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2014-02-18 02:56:07 +0400 |
commit | 586dd56a4c17611e3927c9ff02ab8d0a6a545b38 (patch) | |
tree | 7efa91e04d699f89b736dd642eeb183ef0e92b9d | |
parent | 449f7413c876a229fd95362cc12bc7ade18d0661 (diff) | |
download | linux-586dd56a4c17611e3927c9ff02ab8d0a6a545b38.tar.xz |
Documentation/memory-barriers.txt: Conditional must use prior load
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>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
-rw-r--r-- | Documentation/memory-barriers.txt | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index f9ff060d8320..6b25efd45583 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. |