rcu: Don't make callbacks go through second full grace period
authorPaul E. McKenney <paul.mckenney@linaro.org>
Wed, 11 Jan 2012 01:52:31 +0000 (17:52 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 21 Feb 2012 17:03:37 +0000 (09:03 -0800)
commita50c3af910e06f35bc0c68f89d8fef98c0fec0ea
treebbd86e30567d25dcea2faedf5990d8d0453465aa
parent8146c4e2e2c1972216afece5c50e072e86120e42
rcu: Don't make callbacks go through second full grace period

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: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree.c
This page took 0.031647 seconds and 5 git commands to generate.