[PATCH v2 0/5] Remove SRCU-lite in favor of SRCU-fast

Paul E. McKenney posted 5 patches 3 months, 1 week ago
Only 4 patches received!
b/include/linux/srcu.h                                     |    2
b/include/linux/srcutiny.h                                 |    3
b/include/linux/srcutree.h                                 |   38 ----------
b/kernel/rcu/rcutorture.c                                  |    7 -
b/kernel/rcu/refscale.c                                    |   32 --------
b/scripts/checkpatch.pl                                    |    2
b/tools/testing/selftests/rcutorture/configs/rcu/CFLIST    |    1
include/linux/srcu.h                                       |   47 -------------
tools/testing/selftests/rcutorture/configs/rcu/SRCU-L      |   10 --
tools/testing/selftests/rcutorture/configs/rcu/SRCU-L.boot |    3
10 files changed, 4 insertions(+), 141 deletions(-)
[PATCH v2 0/5] Remove SRCU-lite in favor of SRCU-fast
Posted by Paul E. McKenney 3 months, 1 week ago
Hello!

This series removes the deprecated SRCU-lite flavor.

Both SRCU-lite and SRCU-fast provide faster readers by dropping the
smp_mb() call from their lock and unlock primitives.  The price of this
is a pair of added RCU grace periods during the SRCU grace period.

SRCU-fast also adds NMI safety for architectures that have NMIs but do
not have NMI-safe per-CPU operations.  In addition, srcu_read_lock_fast()
returns a per-CPU pointer rather than an integer, which provides a further
speedup compared to SRCU-lite by getting rid of array-index calculations.

There is a trivial mapping from the SRCU-lite API to that of SRCU-fast,
so we do not expect any transition issues.  In addition, while SRCU-lite
remains in the kernel, checkpatch.pl will warn about added SRCU-lite
use cases.

Further read-side speedups are possible, but they amount to only about
half a nanosecond out of about two nanoseconds (measured on my x86
laptop), and they might require some changes to existing SRCU code.
These changes are trivial, but we need to see a solid need for the
additional performance before inconveniencing existing users.

1.	Remove support for SRCU-lite.

2.	Remove SRCU-lite scenarios.

3.	Remove support for SRCU-lite.

4.	Remove SRCU-lite implementation.

5.	Remove SRCU-lite deprecation.


Changes since v1:

o	Add short explanation of SRCU-lite and SRCU-fast.

						Thanx, Paul

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

 b/include/linux/srcu.h                                     |    2 
 b/include/linux/srcutiny.h                                 |    3 
 b/include/linux/srcutree.h                                 |   38 ----------
 b/kernel/rcu/rcutorture.c                                  |    7 -
 b/kernel/rcu/refscale.c                                    |   32 --------
 b/scripts/checkpatch.pl                                    |    2 
 b/tools/testing/selftests/rcutorture/configs/rcu/CFLIST    |    1 
 include/linux/srcu.h                                       |   47 -------------
 tools/testing/selftests/rcutorture/configs/rcu/SRCU-L      |   10 --
 tools/testing/selftests/rcutorture/configs/rcu/SRCU-L.boot |    3 
 10 files changed, 4 insertions(+), 141 deletions(-)