[PATCH v2 rcu 0/13] SRCU-lite changes for v6.13

From: Paul E. McKenney
Date: Fri Oct 11 2024 - 13:39:22 EST


Hello!

This v2 series adds support and testing for srcu_read_lock_lite()
and srcu_read_unlock_lite(), which avoid smp_mb(), but add a couple of
synchronize_rcu() calls to the grace-period processing and may only be
used where RCU is watching.

1. Rename srcu_might_be_idle() to srcu_should_expedite().

2. Introduce srcu_gp_is_expedited() helper function.

3. Renaming in preparation for additional reader flavor.

4. Bit manipulation changes for additional reader flavor.

5. Standardize srcu_data pointers to "sdp" and similar.

6. Add srcu_read_lock_lite() and srcu_read_unlock_lite().

7. Allow inlining of __srcu_read_{,un}lock_lite().

8. Expand RCUTORTURE_RDR_MASK_[12] to eight bits.

9. Add reader_flavor parameter for SRCU readers.

10. Add srcu_read_lock_lite() support to rcutorture.reader_flavor.

11. Add light-weight SRCU scenario.

12. Add srcu_read_lock_lite() support using "srcu-lite".

13. Improve srcu_read_lock_lite() kernel-doc comment.

Changes since v1:

o Apply reviewed-by tag.

o Link to performance data.

o Add commit improving kernel-doc comment.

o Pull out into separate branch to avoid dependency on an otherwise
unrelated refscale commit.

Thanx, Paul

------------------------------------------------------------------------

Documentation/admin-guide/kernel-parameters.txt | 4
b/Documentation/admin-guide/kernel-parameters.txt | 8
b/include/linux/srcu.h | 21 -
b/include/linux/srcutree.h | 2
b/kernel/rcu/rcutorture.c | 28 -
b/kernel/rcu/refscale.c | 51 ++
b/kernel/rcu/srcutree.c | 16
b/tools/testing/selftests/rcutorture/configs/rcu/CFLIST | 1
b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-L | 10
b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-L.boot | 3
b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N.boot | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 | 2
include/linux/srcu.h | 89 +++-
include/linux/srcutree.h | 44 ++
kernel/rcu/rcutorture.c | 37 +
kernel/rcu/srcutree.c | 207 ++++++-----
16 files changed, 363 insertions(+), 161 deletions(-)