[PATCH rcu 0/4] CONFIG_RCU_FAST_NO_HZ removal for v5.17

From: Paul E. McKenney
Date: Wed Dec 01 2021 - 19:18:47 EST


Hello!

This series removes CONFIG_RCU_FAST_NO_HZ support. The reason for
taking this step is that in every case that I know of where kernels
are built with CONFIG_RCU_FAST_NO_HZ=y, those kernels also offload RCU
callbacks from all CPUs, for example, by booting with rcu_nocbs=0-N.
This is counterproductive because CONFIG_RCU_FAST_NO_HZ only applies
to CPUs that do not offload their callbacks. For CPUs with offloaded
callbacks, this Kconfig option does nothing but (slightly) increase your
to/from idle latencies, which is not normally what anyone wants.

So if you know of someone who is gaining real benefit from building their
kernels with CONFIG_RCU_FAST_NO_HZ=y, this would be a most excellent
time to make me aware of this fact. ;-)

1. Remove RCU_FAST_NO_HZ from rcuscale and refscale scenarios.

2. Remove RCU_FAST_NO_HZ from rcu scenarios.

3. Remove the RCU_FAST_NO_HZ Kconfig option.

4. Move rcu_needs_cpu() to tree.c.

Thanx, Paul

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

b/Documentation/RCU/stallwarn.rst | 11
b/Documentation/admin-guide/kernel-parameters.txt | 4
b/Documentation/timers/no_hz.rst | 10
b/kernel/rcu/Kconfig | 18
b/kernel/rcu/tree.c | 11
b/kernel/rcu/tree.h | 7
b/kernel/rcu/tree_plugin.h | 185 ----------
b/kernel/rcu/tree_stall.h | 27 -
b/tools/testing/selftests/rcutorture/configs/rcu/TREE01 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE02 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE07 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE08 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 | 1
b/tools/testing/selftests/rcutorture/configs/rcuscale/TINY | 1
b/tools/testing/selftests/rcutorture/configs/rcuscale/TRACE01 | 1
b/tools/testing/selftests/rcutorture/configs/rcuscale/TREE | 1
b/tools/testing/selftests/rcutorture/configs/rcuscale/TREE54 | 1
b/tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT | 1
b/tools/testing/selftests/rcutorture/configs/refscale/PREEMPT | 1
b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 1
kernel/rcu/tree.c | 18
kernel/rcu/tree_plugin.h | 16
25 files changed, 25 insertions(+), 297 deletions(-)