aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paul.mckenney@linaro.org>2012-01-07 14:03:57 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2012-02-21 12:03:34 -0500
commite5601400081651060a59bd1f45f2821bb8e97f95 (patch)
tree391e7e0b08d8b642eca260950c7f052832411aa9 /kernel/rcutree.h
parentae1f18e480c83d15539fb234a2dc5f0aa04cb119 (diff)
rcu: Simplify offline processing
Move ->qsmaskinit and blkd_tasks[] manipulation to the CPU_DYING notifier. This simplifies the code by eliminating a potential deadlock and by reducing the responsibilities of force_quiescent_state(). Also rename functions to make their connection to the CPU-hotplug stages explicit. Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcutree.h')
-rw-r--r--kernel/rcutree.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/rcutree.h b/kernel/rcutree.h
index af2af3cc5e65..05e03675439a 100644
--- a/kernel/rcutree.h
+++ b/kernel/rcutree.h
@@ -439,8 +439,8 @@ static void rcu_preempt_check_blocked_tasks(struct rcu_node *rnp);
439static int rcu_preempt_offline_tasks(struct rcu_state *rsp, 439static int rcu_preempt_offline_tasks(struct rcu_state *rsp,
440 struct rcu_node *rnp, 440 struct rcu_node *rnp,
441 struct rcu_data *rdp); 441 struct rcu_data *rdp);
442static void rcu_preempt_offline_cpu(int cpu);
443#endif /* #ifdef CONFIG_HOTPLUG_CPU */ 442#endif /* #ifdef CONFIG_HOTPLUG_CPU */
443static void rcu_preempt_cleanup_dead_cpu(int cpu);
444static void rcu_preempt_check_callbacks(int cpu); 444static void rcu_preempt_check_callbacks(int cpu);
445static void rcu_preempt_process_callbacks(void); 445static void rcu_preempt_process_callbacks(void);
446void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu)); 446void call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu));
@@ -451,7 +451,7 @@ static void rcu_report_exp_rnp(struct rcu_state *rsp, struct rcu_node *rnp,
451static int rcu_preempt_pending(int cpu); 451static int rcu_preempt_pending(int cpu);
452static int rcu_preempt_needs_cpu(int cpu); 452static int rcu_preempt_needs_cpu(int cpu);
453static void __cpuinit rcu_preempt_init_percpu_data(int cpu); 453static void __cpuinit rcu_preempt_init_percpu_data(int cpu);
454static void rcu_preempt_send_cbs_to_online(void); 454static void rcu_preempt_cleanup_dying_cpu(void);
455static void __init __rcu_init_preempt(void); 455static void __init __rcu_init_preempt(void);
456static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags); 456static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags);
457static void rcu_preempt_boost_start_gp(struct rcu_node *rnp); 457static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);