aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/init_task.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2009-08-27 17:58:16 -0400
committerIngo Molnar <mingo@elte.hu>2009-08-29 09:34:39 -0400
commitdd5d19bafd90d33043a4a14b2e2d98612caa293c (patch)
treec21d547124d277f00332bdb01c75f2f4f321de8c /include/linux/init_task.h
parent06e799764eb7c2e4640888d438c3524d756613e1 (diff)
rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees
When offlining CPUs from a multi-level tree, there is the possibility of offlining the last CPU from a given node when there are preempted RCU read-side critical sections that started life on one of the CPUs on that node. In this case, the corresponding tasks will be enqueued via the task_struct's rcu_node_entry list_head onto one of the rcu_node's blocked_tasks[] lists. These tasks need to be moved somewhere else so that they will prevent the current grace period from ending. That somewhere is the root rcu_node. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: laijs@cn.fujitsu.com Cc: dipankar@in.ibm.com Cc: akpm@linux-foundation.org Cc: mathieu.desnoyers@polymtl.ca Cc: josht@linux.vnet.ibm.com Cc: dvhltc@us.ibm.com Cc: niv@us.ibm.com Cc: peterz@infradead.org Cc: rostedt@goodmis.org LKML-Reference: <20090827215816.GA30472@linux.vnet.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/init_task.h')
-rw-r--r--include/linux/init_task.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 79d4baee31b..9e7f2e8fc66 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -98,7 +98,7 @@ extern struct group_info init_groups;
98#define INIT_TASK_RCU_PREEMPT(tsk) \ 98#define INIT_TASK_RCU_PREEMPT(tsk) \
99 .rcu_read_lock_nesting = 0, \ 99 .rcu_read_lock_nesting = 0, \
100 .rcu_read_unlock_special = 0, \ 100 .rcu_read_unlock_special = 0, \
101 .rcu_blocked_cpu = -1, \ 101 .rcu_blocked_node = NULL, \
102 .rcu_node_entry = LIST_HEAD_INIT(tsk.rcu_node_entry), 102 .rcu_node_entry = LIST_HEAD_INIT(tsk.rcu_node_entry),
103#else 103#else
104#define INIT_TASK_RCU_PREEMPT(tsk) 104#define INIT_TASK_RCU_PREEMPT(tsk)