• Paul E. McKenney's avatar
    rcu: Don't make callbacks go through second full grace period · a50c3af9
    Paul E. McKenney authored
    RCU's current CPU-offline code path dumps all of the outgoing CPU's
    callbacks onto the RCU_NEXT_TAIL portion of the surviving CPU's
    callback list.  This means that all the ready-to-invoke callbacks from
    the outgoing CPU must wait for another full RCU grace period.  This was
    just fine when CPU-hotplug events were rare, but there is increasing
    evidence that users are planning to make increasing use of CPU hotplug.
    
    Therefore, this commit changes the callback-dumping procedure so that
    callbacks that are ready to invoke are moved to the RCU_DONE_TAIL
    portion of the surviving CPU's callback list.  This avoids running
    these callbacks through a second unnecessary grace period.
    Signed-off-by: default avatarPaul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    a50c3af9
rcutree.c 71.6 KB