• Paul E. McKenney's avatar
    rcu/nocb: Avoid needless wakeups of no-CBs grace-period kthread · 7f36ef82
    Paul E. McKenney authored
    Currently, the code provides an extra wakeup for the no-CBs grace-period
    kthread if one of its CPUs is generating excessive numbers of callbacks.
    But satisfying though it is to wake something up when things are going
    south, unless the thing being awakened can actually help solve the
    problem, that extra wakeup does nothing but consume additional CPU time,
    which is exactly what you don't want during a call_rcu() flood.
    
    This commit therefore avoids doing anything if the corresponding
    no-CBs callback kthread is going full tilt.  Otherwise, if advancing
    callbacks immediately might help and if the leaf rcu_node structure's
    lock is immediately available, this commit invokes a new variant of
    rcu_advance_cbs() that advances callbacks only if doing so won't require
    awakening the grace-period kthread (not to be confused with any of the
    no-CBs grace-period kthreads).
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
    7f36ef82
tree_plugin.h 66.5 KB