• Paul E. McKenney's avatar
    rcu: Prevent useless FQS scan after all CPUs have checked in · 92816435
    Paul E. McKenney authored
    The force_qs_rnp() function checks for ->qsmask being all zero, that is,
    all CPUs for the current rcu_node structure having already passed through
    quiescent states.  But with RCU-preempt, this is not sufficient to report
    quiescent states further up the tree, so there are further checks that
    can initiate RCU priority boosting and also for races with CPU-hotplug
    operations.  However, if neither of these further checks apply, the code
    proceeds to carry out a useless scan of an all-zero ->qsmask.
    
    This commit therefore adds code to release the current rcu_node
    structure's lock and continue on to the next rcu_node structure, thereby
    avoiding this useless scan.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    92816435
tree.c 129 KB