diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2012-07-16 06:42:38 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2012-08-13 11:01:08 -0400 |
commit | 62ab7072476ae1600e877cc62b43758e485f4f1e (patch) | |
tree | c1df0992432cf5bae0f9122d606e73628368fb8e /kernel/rcutree.h | |
parent | bcd951cf10f24e341defcd002c15a1f4eea13ddb (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.h | 8 |
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 |
469 | static void rcu_report_unblock_qs_rnp(struct rcu_node *rnp, | 463 | static void rcu_report_unblock_qs_rnp(struct rcu_node *rnp, |
470 | unsigned long flags); | 464 | unsigned long flags); |
471 | static void rcu_stop_cpu_kthread(int cpu); | ||
472 | #endif /* #ifdef CONFIG_HOTPLUG_CPU */ | 465 | #endif /* #ifdef CONFIG_HOTPLUG_CPU */ |
473 | static void rcu_print_detail_task_stall(struct rcu_state *rsp); | 466 | static void rcu_print_detail_task_stall(struct rcu_state *rsp); |
474 | static int rcu_print_task_stall(struct rcu_node *rnp); | 467 | static int rcu_print_task_stall(struct rcu_node *rnp); |
@@ -494,7 +487,6 @@ static void rcu_preempt_do_callbacks(void); | |||
494 | static int __cpuinit rcu_spawn_one_boost_kthread(struct rcu_state *rsp, | 487 | static 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 */ |
497 | static void rcu_cpu_kthread_setrt(int cpu, int to_rt); | ||
498 | static void __cpuinit rcu_prepare_kthreads(int cpu); | 490 | static void __cpuinit rcu_prepare_kthreads(int cpu); |
499 | static void rcu_prepare_for_idle_init(int cpu); | 491 | static void rcu_prepare_for_idle_init(int cpu); |
500 | static void rcu_cleanup_after_idle(int cpu); | 492 | static void rcu_cleanup_after_idle(int cpu); |