lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.8 327/633] rcu/tree: Force quiescent state on callback overload
    Date
    From: Neeraj Upadhyay <neeraju@codeaurora.org>

    [ Upstream commit 9c39245382de4d52a122641952900709d4a9950b ]

    On callback overload, it is necessary to quickly detect idle CPUs,
    and rcu_gp_fqs_check_wake() checks for this condition. Unfortunately,
    the code following the call to this function does not repeat this check,
    which means that in reality no actual quiescent-state forcing, instead
    only a couple of quick and pointless wakeups at the beginning of the
    grace period.

    This commit therefore adds a check for the RCU_GP_FLAG_OVLD flag in
    the post-wakeup "if" statement in rcu_gp_fqs_loop().

    Fixes: 1fca4d12f4637 ("rcu: Expedite first two FQS scans under callback-overload conditions")
    Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
    Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    kernel/rcu/tree.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
    index 1e9e500ff7906..572a79b1a8510 100644
    --- a/kernel/rcu/tree.c
    +++ b/kernel/rcu/tree.c
    @@ -1882,7 +1882,7 @@ static void rcu_gp_fqs_loop(void)
    break;
    /* If time for quiescent-state forcing, do it. */
    if (!time_after(rcu_state.jiffies_force_qs, jiffies) ||
    - (gf & RCU_GP_FLAG_FQS)) {
    + (gf & (RCU_GP_FLAG_FQS | RCU_GP_FLAG_OVLD))) {
    trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq,
    TPS("fqsstart"));
    rcu_gp_fqs(first_gp_fqs);
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 16:09    [W:5.790 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site