summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorPaul E. McKenney2012-01-06 23:11:30 +0100
committerPaul E. McKenney2012-02-21 18:03:25 +0100
commit486e259340fc4c60474f2c14703e3b3634bb58ca (patch)
tree70a58702194588fa0773463523f72c682785d040 /init
parentrcu: Add diagnostic for misaligned rcu_head structures (diff)
downloadkernel-qcow2-linux-486e259340fc4c60474f2c14703e3b3634bb58ca.tar.gz
kernel-qcow2-linux-486e259340fc4c60474f2c14703e3b3634bb58ca.tar.xz
kernel-qcow2-linux-486e259340fc4c60474f2c14703e3b3634bb58ca.zip
rcu: Avoid waking up CPUs having only kfree_rcu() callbacks
When CONFIG_RCU_FAST_NO_HZ is enabled, RCU will allow a given CPU to enter dyntick-idle mode even if it still has RCU callbacks queued. RCU avoids system hangs in this case by scheduling a timer for several jiffies in the future. However, if all of the callbacks on that CPU are from kfree_rcu(), there is no reason to wake the CPU up, as it is not a problem to defer freeing of memory. This commit therefore tracks the number of callbacks on a given CPU that are from kfree_rcu(), and avoids scheduling the timer if all of a given CPU's callbacks are from kfree_rcu(). Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions