lkml.org 
[lkml]   [2020]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip: core/rcu] rcu: Reduce leaf fanout for strict RCU grace periods
    The following commit has been merged into the core/rcu branch of tip:

    Commit-ID: dc1269186bed3afc5a2018527516be84fe55d3e0
    Gitweb: https://git.kernel.org/tip/dc1269186bed3afc5a2018527516be84fe55d3e0
    Author: Paul E. McKenney <paulmck@kernel.org>
    AuthorDate: Wed, 05 Aug 2020 16:52:17 -07:00
    Committer: Paul E. McKenney <paulmck@kernel.org>
    CommitterDate: Mon, 24 Aug 2020 18:40:23 -07:00

    rcu: Reduce leaf fanout for strict RCU grace periods

    Because strict RCU grace periods will complete more quickly, they will
    experience greater lock contention on each leaf rcu_node structure's
    ->lock. This commit therefore reduces the leaf fanout in order to reduce
    this lock contention.

    Note that this also has the effect of reducing the number of CPUs
    supported to 16 in the case of CONFIG_RCU_FANOUT_LEAF=2 or 81 in the
    case of CONFIG_RCU_FANOUT_LEAF=3. However, greater numbers of CPUs are
    probably a bad idea when using CONFIG_RCU_STRICT_GRACE_PERIOD=y. Those
    wishing to live dangerously are free to edit their kernel/rcu/Kconfig
    files accordingly.

    Reported-by Jann Horn <jannh@google.com>
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    ---
    kernel/rcu/Kconfig | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
    index 0ebe15a..b71e21f 100644
    --- a/kernel/rcu/Kconfig
    +++ b/kernel/rcu/Kconfig
    @@ -135,10 +135,12 @@ config RCU_FANOUT

    config RCU_FANOUT_LEAF
    int "Tree-based hierarchical RCU leaf-level fanout value"
    - range 2 64 if 64BIT
    - range 2 32 if !64BIT
    + range 2 64 if 64BIT && !RCU_STRICT_GRACE_PERIOD
    + range 2 32 if !64BIT && !RCU_STRICT_GRACE_PERIOD
    + range 2 3 if RCU_STRICT_GRACE_PERIOD
    depends on TREE_RCU && RCU_EXPERT
    - default 16
    + default 16 if !RCU_STRICT_GRACE_PERIOD
    + default 2 if RCU_STRICT_GRACE_PERIOD
    help
    This option controls the leaf-level fanout of hierarchical
    implementations of RCU, and allows trading off cache misses
    \
     
     \ /
      Last update: 2022-09-17 16:09    [W:4.577 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site