On Tue, Apr 22, 2025 at 07:38:30PM +0200, Uladzislau Rezki (Sony) wrote: > The SRCU read-side critical sections describes the difference between > srcu_down_read()/srcu_up_read() and srcu_read_lock()/srcu_read_unlock() > in a way that a last pair must occur on the same CPU. > > This is not true, the srcu_read_unlock() can happen on any CPU, but it > must be performed by the same task that invoked srcu_read_lock(). > > Signed-off-by: Uladzislau Rezki (Sony) <ure...@gmail.com>
Good catch! Reviewed-by: Paul E. McKenney <paul...@kernel.org> > --- > tools/memory-model/Documentation/explanation.txt | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/memory-model/Documentation/explanation.txt > b/tools/memory-model/Documentation/explanation.txt > index 6dc8b3642458..34aa3172071b 100644 > --- a/tools/memory-model/Documentation/explanation.txt > +++ b/tools/memory-model/Documentation/explanation.txt > @@ -1896,7 +1896,7 @@ following respects: > > 3. The srcu_down_read() and srcu_up_read() primitives work > exactly like srcu_read_lock() and srcu_read_unlock(), except > - that matching calls don't have to execute on the same CPU. > + that matching calls don't have to execute within the same context. > (The names are meant to be suggestive of operations on > semaphores.) Since the matching is determined by the domain > pointer and index value, these primitives make it possible for > -- > 2.39.5 >