]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
tools/memory-model: Expand definition of barrier
authorAlan Stern <stern@rowland.harvard.edu>
Thu, 20 Jun 2019 15:55:36 +0000 (11:55 -0400)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Fri, 21 Jun 2019 23:18:45 +0000 (16:18 -0700)
Commit 66be4e66a7f4 ("rcu: locking and unlocking need to always be at
least barriers") added compiler barriers back into rcu_read_lock() and
rcu_read_unlock().  Furthermore, srcu_read_lock() and
srcu_read_unlock() have always contained compiler barriers.

The Linux Kernel Memory Model ought to know about these barriers.
This patch adds them into the memory model.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Andrea Parri <andrea.parri@amarulasolutions.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
tools/memory-model/linux-kernel.cat

index 36d367054811f42aed12a4add50dbd65ff42a532..8b61218c99fd9f08cf87f042fa871efa8934ac12 100644 (file)
@@ -45,7 +45,8 @@ let strong-fence = mb | gp
 let nonrw-fence = strong-fence | po-rel | acq-po
 let fence = nonrw-fence | wmb | rmb
 let barrier = fencerel(Barrier | Rmb | Wmb | Mb | Sync-rcu | Sync-srcu |
-               Before-atomic | After-atomic | Acquire | Release) |
+               Before-atomic | After-atomic | Acquire | Release |
+               Rcu-lock | Rcu-unlock | Srcu-lock | Srcu-unlock) |
        (po ; [Release]) | ([Acquire] ; po)
 
 (**********************************)