rcu: Force per-rcu_node kthreads off of the outgoing CPU
authorPaul E. McKenney <paul.mckenney@linaro.org>
Thu, 14 Apr 2011 19:13:53 +0000 (12:13 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 6 May 2011 06:16:55 +0000 (23:16 -0700)
commit0f962a5e7277c34987b77dc82fc9aefcedc95e27
treeb265d93dcc8f2669f8fb9b353344b9f6cc354728
parent27f4d28057adf98750cf863c40baefb12f5b6d21
rcu: Force per-rcu_node kthreads off of the outgoing CPU

The scheduler has had some heartburn in the past when too many real-time
kthreads were affinitied to the outgoing CPU.  So, this commit lightens
the load by forcing the per-rcu_node and the boost kthreads off of the
outgoing CPU.  Note that RCU's per-CPU kthread remains on the outgoing
CPU until the bitter end, as it must in order to preserve correctness.

Also avoid disabling hardirqs across calls to set_cpus_allowed_ptr(),
given that this function can block.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree.c
kernel/rcutree_plugin.h