Skip to content

Commit

Permalink
tools/memory-model: Remove out-of-date SRCU documentation
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Andrea Parri authored and Paul E. McKenney committed Mar 24, 2023
1 parent 05dc847 commit cc4a298
Showing 1 changed file with 1 addition and 26 deletions.
27 changes: 1 addition & 26 deletions tools/memory-model/Documentation/litmus-tests.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1028,32 +1028,7 @@ Limitations of the Linux-kernel memory model (LKMM) include:
additional call_rcu() process to the site of the
emulated rcu-barrier().

e. Although sleepable RCU (SRCU) is now modeled, there
are some subtle differences between its semantics and
those in the Linux kernel. For example, the kernel
might interpret the following sequence as two partially
overlapping SRCU read-side critical sections:

1 r1 = srcu_read_lock(&my_srcu);
2 do_something_1();
3 r2 = srcu_read_lock(&my_srcu);
4 do_something_2();
5 srcu_read_unlock(&my_srcu, r1);
6 do_something_3();
7 srcu_read_unlock(&my_srcu, r2);

In contrast, LKMM will interpret this as a nested pair of
SRCU read-side critical sections, with the outer critical
section spanning lines 1-7 and the inner critical section
spanning lines 3-5.

This difference would be more of a concern had anyone
identified a reasonable use case for partially overlapping
SRCU read-side critical sections. For more information
on the trickiness of such overlapping, please see:
https://paulmck.livejournal.com/40593.html

f. Reader-writer locking is not modeled. It can be
e. Reader-writer locking is not modeled. It can be
emulated in litmus tests using atomic read-modify-write
operations.

Expand Down

0 comments on commit cc4a298

Please sign in to comment.