Messages in this thread | | | Date | Wed, 1 Dec 2021 16:18:38 -0800 | From | "Paul E. McKenney" <> | Subject | [PATCH rcu 0/4] CONFIG_RCU_FAST_NO_HZ removal for v5.17 |
| |
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(-)
| |