lkml.org 
[lkml]   [2021]   [Dec]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    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(-)

    \
     
     \ /
      Last update: 2021-12-02 01:20    [W:2.322 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site