• Paul E. McKenney's avatar
    rcu: Clean up code based on review feedback from Josh Triplett, part 4 · a0b6c9a7
    Paul E. McKenney authored
    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: default avatarPaul 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: default avatarIngo Molnar <mingo@elte.hu>
    a0b6c9a7
rcutree.h 11.9 KB