Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools/memory-model: Remove out-of-date SRCU documentation

Commit 6cd244c87428 ("tools/memory-model: Provide exact SRCU semantics")
changed the semantics of partially overlapping SRCU read-side critical
sections (among other things), making such documentation out-of-date.
The new, semantic changes are discussed in explanation.txt. Remove the
out-of-date documentation.

Signed-off-by: Andrea Parri <parri.andrea@gmail.com>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>

authored by

Andrea Parri and committed by
Paul E. McKenney
cc4a2981 05dc8470

+1 -26
+1 -26
tools/memory-model/Documentation/litmus-tests.txt
··· 1028 1028 additional call_rcu() process to the site of the 1029 1029 emulated rcu-barrier(). 1030 1030 1031 - e. Although sleepable RCU (SRCU) is now modeled, there 1032 - are some subtle differences between its semantics and 1033 - those in the Linux kernel. For example, the kernel 1034 - might interpret the following sequence as two partially 1035 - overlapping SRCU read-side critical sections: 1036 - 1037 - 1 r1 = srcu_read_lock(&my_srcu); 1038 - 2 do_something_1(); 1039 - 3 r2 = srcu_read_lock(&my_srcu); 1040 - 4 do_something_2(); 1041 - 5 srcu_read_unlock(&my_srcu, r1); 1042 - 6 do_something_3(); 1043 - 7 srcu_read_unlock(&my_srcu, r2); 1044 - 1045 - In contrast, LKMM will interpret this as a nested pair of 1046 - SRCU read-side critical sections, with the outer critical 1047 - section spanning lines 1-7 and the inner critical section 1048 - spanning lines 3-5. 1049 - 1050 - This difference would be more of a concern had anyone 1051 - identified a reasonable use case for partially overlapping 1052 - SRCU read-side critical sections. For more information 1053 - on the trickiness of such overlapping, please see: 1054 - https://paulmck.livejournal.com/40593.html 1055 - 1056 - f. Reader-writer locking is not modeled. It can be 1031 + e. Reader-writer locking is not modeled. It can be 1057 1032 emulated in litmus tests using atomic read-modify-write 1058 1033 operations. 1059 1034