aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2012-07-16 06:42:38 -0400
committerThomas Gleixner <tglx@linutronix.de>2012-08-13 11:01:08 -0400
commit62ab7072476ae1600e877cc62b43758e485f4f1e (patch)
treec1df0992432cf5bae0f9122d606e73628368fb8e /kernel/rcutree.c
parentbcd951cf10f24e341defcd002c15a1f4eea13ddb (diff)
rcu: Use smp_hotplug_thread facility for RCUs per-CPU kthread
Bring RCU into the new-age CPU-hotplug fold by modifying RCU's per-CPU kthread code to use the new smp_hotplug_thread facility. [ tglx: Adapted it to use callbacks and to the simplified rcu yield ] Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Namhyung Kim <namhyung@kernel.org> Link: http://lkml.kernel.org/r/20120716103948.673354828@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r--kernel/rcutree.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index f08ee3bc5741..11a4fdca1df7 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -133,7 +133,6 @@ static int rcu_scheduler_fully_active __read_mostly;
133 */ 133 */
134static DEFINE_PER_CPU(struct task_struct *, rcu_cpu_kthread_task); 134static DEFINE_PER_CPU(struct task_struct *, rcu_cpu_kthread_task);
135DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_status); 135DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_status);
136DEFINE_PER_CPU(int, rcu_cpu_kthread_cpu);
137DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_loops); 136DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_loops);
138DEFINE_PER_CPU(char, rcu_cpu_has_work); 137DEFINE_PER_CPU(char, rcu_cpu_has_work);
139 138
@@ -1468,7 +1467,6 @@ static void rcu_cleanup_dead_cpu(int cpu, struct rcu_state *rsp)
1468 struct rcu_node *rnp = rdp->mynode; /* Outgoing CPU's rdp & rnp. */ 1467 struct rcu_node *rnp = rdp->mynode; /* Outgoing CPU's rdp & rnp. */
1469 1468
1470 /* Adjust any no-longer-needed kthreads. */ 1469 /* Adjust any no-longer-needed kthreads. */
1471 rcu_stop_cpu_kthread(cpu);
1472 rcu_boost_kthread_setaffinity(rnp, -1); 1470 rcu_boost_kthread_setaffinity(rnp, -1);
1473 1471
1474 /* Remove the dead CPU from the bitmasks in the rcu_node hierarchy. */ 1472 /* Remove the dead CPU from the bitmasks in the rcu_node hierarchy. */
@@ -2595,11 +2593,9 @@ static int __cpuinit rcu_cpu_notify(struct notifier_block *self,
2595 case CPU_ONLINE: 2593 case CPU_ONLINE:
2596 case CPU_DOWN_FAILED: 2594 case CPU_DOWN_FAILED:
2597 rcu_boost_kthread_setaffinity(rnp, -1); 2595 rcu_boost_kthread_setaffinity(rnp, -1);
2598 rcu_cpu_kthread_setrt(cpu, 1);
2599 break; 2596 break;
2600 case CPU_DOWN_PREPARE: 2597 case CPU_DOWN_PREPARE:
2601 rcu_boost_kthread_setaffinity(rnp, cpu); 2598 rcu_boost_kthread_setaffinity(rnp, cpu);
2602 rcu_cpu_kthread_setrt(cpu, 0);
2603 break; 2599 break;
2604 case CPU_DYING: 2600 case CPU_DYING:
2605 case CPU_DYING_FROZEN: 2601 case CPU_DYING_FROZEN: