Paul E. McKenney a0b6c9a78c 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>
2009-10-05 21:02:04 +02:00
..
2009-08-20 10:29:28 +10:00
2009-06-24 00:02:38 -04:00
2009-06-24 00:02:38 -04:00
2009-09-18 09:48:52 -07:00
2008-10-16 11:21:30 -07:00
2009-06-16 19:47:48 -07:00
2008-07-28 14:37:38 +02:00
2009-09-19 13:13:17 -07:00
2009-05-15 07:56:24 -05:00
2009-07-24 10:53:29 +02:00
2009-09-18 21:22:08 +02:00
2009-09-18 21:22:08 +02:00
2009-01-14 18:09:02 +01:00
2009-06-18 13:03:56 -07:00
2009-07-24 15:30:45 -04:00
2009-06-18 13:03:55 -07:00
2008-09-02 19:21:40 -07:00
2009-09-14 17:41:42 -07:00
2009-07-14 00:30:40 +10:00
2009-09-18 20:47:30 +02:00
2009-08-01 11:18:56 -07:00
2009-08-26 17:24:28 -07:00
2009-06-16 19:47:48 -07:00
2009-07-12 14:03:27 -07:00
2009-06-15 21:30:23 -07:00
2009-06-18 13:03:55 -07:00