diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2009-09-28 10:46:33 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-10-05 15:02:04 -0400 |
commit | a0b6c9a78c41dc36732d6e1e90f0f2f57b29816f (patch) | |
tree | 4e68c76c95a74e1c8f3360c10e2c3496b7a7df0d /kernel/rcutree_plugin.h | |
parent | 3d76c082907e8f83c5d5c4572f38d53ad8f00c4b (diff) |
rcu: Clean up code based on review feedback from Josh Triplett, part 4
These issues identified during an old-fashioned face-to-face code
review extending over many hours. This group improves an existing
abstraction and introduces two new ones. It also fixes an RCU
stall-warning bug found while making the other changes.
o Make RCU_INIT_FLAVOR() declare its own variables, removing
the need to declare them at each call site.
o Create an rcu_for_each_leaf() macro that scans the leaf
nodes of the rcu_node tree.
o Create an rcu_for_each_node_breadth_first() macro that does
a breadth-first traversal of the rcu_node tree, AKA
stepping through the array in index-number order.
o If all CPUs corresponding to a given leaf rcu_node
structure go offline, then any tasks queued on that leaf
will be moved to the root rcu_node structure. Therefore,
the stall-warning code must dump out tasks queued on the
root rcu_node structure as well as those queued on the leaf
rcu_node structures.
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: josh@joshtriplett.org
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
Cc: rostedt@goodmis.org
Cc: Valdis.Kletnieks@vt.edu
Cc: dhowells@redhat.com
LKML-Reference: <12541491934126-git-send-email->
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/rcutree_plugin.h')
-rw-r--r-- | kernel/rcutree_plugin.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h index 65250219ab6d..57200fe96d0a 100644 --- a/kernel/rcutree_plugin.h +++ b/kernel/rcutree_plugin.h | |||
@@ -423,10 +423,6 @@ static void __cpuinit rcu_preempt_init_percpu_data(int cpu) | |||
423 | */ | 423 | */ |
424 | static void __init __rcu_init_preempt(void) | 424 | static void __init __rcu_init_preempt(void) |
425 | { | 425 | { |
426 | int i; /* All used by RCU_INIT_FLAVOR(). */ | ||
427 | int j; | ||
428 | struct rcu_node *rnp; | ||
429 | |||
430 | RCU_INIT_FLAVOR(&rcu_preempt_state, rcu_preempt_data); | 426 | RCU_INIT_FLAVOR(&rcu_preempt_state, rcu_preempt_data); |
431 | } | 427 | } |
432 | 428 | ||