rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 27 Aug 2009 21:58:16 +0000 (14:58 -0700)
committerIngo Molnar <mingo@elte.hu>
Sat, 29 Aug 2009 13:34:39 +0000 (15:34 +0200)
commitdd5d19bafd90d33043a4a14b2e2d98612caa293c
treec21d547124d277f00332bdb01c75f2f4f321de8c
parent06e799764eb7c2e4640888d438c3524d756613e1
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>
include/linux/init_task.h
include/linux/sched.h
kernel/rcutree.c
kernel/rcutree_plugin.h