]> git.karo-electronics.de Git - linux-beck.git/commitdiff
documentation: Add acquire/release barriers to pairing rules
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 19 Jun 2014 17:01:23 +0000 (10:01 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 8 Jul 2014 15:32:51 +0000 (08:32 -0700)
It is possible to pair acquire and release barriers with other barriers,
so this commit adds them to the list in the SMP barrier pairing section.

Reported-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
[ paulmck: Updated pairing discussion as suggested by Peter Zijlstra. ]

Documentation/memory-barriers.txt

index a6ca533a73fc4dd76c6031e5493e4d209b77b123..a4de88fb55f087451cf97955a6ab419b74935c4e 100644 (file)
@@ -757,10 +757,14 @@ SMP BARRIER PAIRING
 When dealing with CPU-CPU interactions, certain types of memory barrier should
 always be paired.  A lack of appropriate pairing is almost certainly an error.
 
-A write barrier should always be paired with a data dependency barrier or read
-barrier, though a general barrier would also be viable.  Similarly a read
-barrier or a data dependency barrier should always be paired with at least an
-write barrier, though, again, a general barrier is viable:
+General barriers pair with each other, though they also pair with
+most other types of barriers, albeit without transitivity.  An acquire
+barrier pairs with a release barrier, but both may also pair with other
+barriers, including of course general barriers.  A write barrier pairs
+with a data dependency barrier, an acquire barrier, a release barrier,
+a read barrier, or a general barrier.  Similarly a read barrier or a
+data dependency barrier pairs with a write barrier, an acquire barrier,
+a release barrier, or a general barrier:
 
        CPU 1                 CPU 2
        ===============       ===============