aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.h
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.h
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.h')
-rw-r--r--kernel/rcutree.h8
1 files changed, 0 insertions, 8 deletions
diff --git a/kernel/rcutree.h b/kernel/rcutree.h
index f08176172546..1224d4c05382 100644
--- a/kernel/rcutree.h
+++ b/kernel/rcutree.h
@@ -196,12 +196,6 @@ struct rcu_node {
196 /* Refused to boost: not sure why, though. */ 196 /* Refused to boost: not sure why, though. */
197 /* This can happen due to race conditions. */ 197 /* This can happen due to race conditions. */
198#endif /* #ifdef CONFIG_RCU_BOOST */ 198#endif /* #ifdef CONFIG_RCU_BOOST */
199 struct task_struct *node_kthread_task;
200 /* kthread that takes care of this rcu_node */
201 /* structure, for example, awakening the */
202 /* per-CPU kthreads as needed. */
203 unsigned int node_kthread_status;
204 /* State of node_kthread_task for tracing. */
205} ____cacheline_internodealigned_in_smp; 199} ____cacheline_internodealigned_in_smp;
206 200
207/* 201/*
@@ -468,7 +462,6 @@ static int rcu_preempt_blocked_readers_cgp(struct rcu_node *rnp);
468#ifdef CONFIG_HOTPLUG_CPU 462#ifdef CONFIG_HOTPLUG_CPU
469static void rcu_report_unblock_qs_rnp(struct rcu_node *rnp, 463static void rcu_report_unblock_qs_rnp(struct rcu_node *rnp,
470 unsigned long flags); 464 unsigned long flags);
471static void rcu_stop_cpu_kthread(int cpu);
472#endif /* #ifdef CONFIG_HOTPLUG_CPU */ 465#endif /* #ifdef CONFIG_HOTPLUG_CPU */
473static void rcu_print_detail_task_stall(struct rcu_state *rsp); 466static void rcu_print_detail_task_stall(struct rcu_state *rsp);
474static int rcu_print_task_stall(struct rcu_node *rnp); 467static int rcu_print_task_stall(struct rcu_node *rnp);
@@ -494,7 +487,6 @@ static void rcu_preempt_do_callbacks(void);
494static int __cpuinit rcu_spawn_one_boost_kthread(struct rcu_state *rsp, 487static int __cpuinit rcu_spawn_one_boost_kthread(struct rcu_state *rsp,
495 struct rcu_node *rnp); 488 struct rcu_node *rnp);
496#endif /* #ifdef CONFIG_RCU_BOOST */ 489#endif /* #ifdef CONFIG_RCU_BOOST */
497static void rcu_cpu_kthread_setrt(int cpu, int to_rt);
498static void __cpuinit rcu_prepare_kthreads(int cpu); 490static void __cpuinit rcu_prepare_kthreads(int cpu);
499static void rcu_prepare_for_idle_init(int cpu); 491static void rcu_prepare_for_idle_init(int cpu);
500static void rcu_cleanup_after_idle(int cpu); 492static void rcu_cleanup_after_idle(int cpu);