• Neeraj Upadhyay's avatar
    rcu: Fix existing exp request check in sync_sched_exp_online_cleanup() · f0b2b2df
    Neeraj Upadhyay authored
    The sync_sched_exp_online_cleanup() checks to see if RCU needs
    an expedited quiescent state from the incoming CPU, sending it
    an IPI if so. Before sending IPI, it checks whether expedited
    qs need has been already requested for the incoming CPU, by
    checking rcu_data.cpu_no_qs.b.exp for the current cpu, on which
    sync_sched_exp_online_cleanup() is running. This works for the
    case where incoming CPU is same as self. However, for the case
    where incoming CPU is different from self, expedited request
    won't get marked, which can potentially delay reporting of
    expedited quiescent state for the incoming CPU.
    
    Fixes: e015a341 ("rcu: Avoid self-IPI in sync_sched_exp_online_cleanup()")
    Signed-off-by: default avatarNeeraj Upadhyay <neeraju@codeaurora.org>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    f0b2b2df
tree_exp.h 25.2 KB