[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211202001838.GA3126627@paulmck-ThinkPad-P17-Gen-1>
Date: Wed, 1 Dec 2021 16:18:38 -0800
From: "Paul E. McKenney" <paulmck@...nel.org>
To: rcu@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, kernel-team@...com, mingo@...nel.org,
jiangshanlai@...il.com, akpm@...ux-foundation.org,
mathieu.desnoyers@...icios.com, josh@...htriplett.org,
tglx@...utronix.de, peterz@...radead.org, rostedt@...dmis.org,
dhowells@...hat.com, edumazet@...gle.com, fweisbec@...il.com,
oleg@...hat.com, joel@...lfernandes.org
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(-)
Powered by blists - more mailing lists