Commit 0ce0c78e authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

tools/memory-model: Expand the cheatsheet.txt notion of relaxed



This commit adds a key entry enumerating the various types of relaxed
operations.  While in the area, it also renames the relaxed rows.

[ paulmck: Apply Boqun Feng feedback. ]
Acked-by: default avatarBoqun Feng <boqun.feng@gmail.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 0b8c06b7
Loading
Loading
Loading
Loading
+19 −14
Original line number Diff line number Diff line
@@ -3,9 +3,9 @@
                               C  Self  R  W  RMW  Self  R  W  DR  DW  RMW  SV
                              --  ----  -  -  ---  ----  -  -  --  --  ---  --

Store, e.g., WRITE_ONCE()            Y                                       Y
Load, e.g., READ_ONCE()              Y                          Y   Y        Y
Unsuccessful RMW operation           Y                          Y   Y        Y
Relaxed store                        Y                                       Y
Relaxed load                         Y                          Y   Y        Y
Relaxed RMW operation                Y                          Y   Y        Y
rcu_dereference()                    Y                          Y   Y        Y
Successful *_acquire()               R                   Y  Y   Y   Y    Y   Y
Successful *_release()         C        Y  Y    Y     W                      Y
@@ -17,7 +17,12 @@ smp_mb__before_atomic() CP Y Y Y a a a a Y
smp_mb__after_atomic()        CP        a  a    Y        Y  Y   Y   Y    Y


Key:	C:	Ordering is cumulative
Key:	Relaxed:  A relaxed operation is either READ_ONCE(), WRITE_ONCE(),
		  a *_relaxed() RMW operation, an unsuccessful RMW
		  operation, a non-value-returning RMW operation such
		  as atomic_inc(), or one of the atomic*_read() and
		  atomic*_set() family of operations.
	C:	  Ordering is cumulative
	P:	  Ordering propagates
	R:	  Read, for example, READ_ONCE(), or read portion of RMW
	W:	  Write, for example, WRITE_ONCE(), or write portion of RMW