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

Paul E. McKenney posted 13 patches 1 month, 1 week ago
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(-)
[PATCH v3 rcu 0/13] SRCU-lite changes for v6.13
Posted by Paul E. McKenney 1 month, 1 week ago
Hello!

This v3 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.	Improve srcu_read_lock{,_nmisafe}() comments.

7.	Create CPP macros for normal and NMI-safe SRCU readers.

8.	Add srcu_read_lock_lite() and srcu_read_unlock_lite().

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

10.	Expand RCUTORTURE_RDR_MASK_[12] to eight bits.

11.	Add reader_flavor parameter for SRCU readers.

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

13.	Add light-weight SRCU scenario.

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

15.	Improve srcu_read_lock_lite() kernel-doc comment.

Changes since v2:

o	Apply acked-by tag.

o	Split commit per Neeraj Upadhyay feedback.

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(-)
Re: [PATCH v3 rcu 0/13] SRCU-lite changes for v6.13
Posted by Neeraj Upadhyay 2 weeks ago
On 10/15/2024 9:41 PM, Paul E. McKenney wrote:
> Hello!
> 
> This v3 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.	Improve srcu_read_lock{,_nmisafe}() comments.
> 
> 7.	Create CPP macros for normal and NMI-safe SRCU readers.
> 
> 8.	Add srcu_read_lock_lite() and srcu_read_unlock_lite().
> 
> 9.	Allow inlining of __srcu_read_{,un}lock_lite().
> 
> 10.	Expand RCUTORTURE_RDR_MASK_[12] to eight bits.
> 
> 11.	Add reader_flavor parameter for SRCU readers.
> 
> 12.	Add srcu_read_lock_lite() support to rcutorture.reader_flavor.
> 
> 13.	Add light-weight SRCU scenario.
> 
> 14.	Add srcu_read_lock_lite() support using "srcu-lite".
> 
> 15.	Improve srcu_read_lock_lite() kernel-doc comment.
> 
> Changes since v2:
> 
> o	Apply acked-by tag.
> 
> o	Split commit per Neeraj Upadhyay feedback.
> 
> 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
> 
> ------------------------------------------------------------------------
> 

For this series:

Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>


- Neeraj