On Thu, Apr 13, 2017 at 11:42:32AM -0700, Paul E. McKenney wrote: > I believe that you are missing the fact that RCU grace-period > initialization and cleanup walks through the rcu_node tree breadth > first, using rcu_for_each_node_breadth_first().
Indeed. That is the part I completely missed. > This macro (shown below) > implements this breadth-first walk using a simple sequential traversal of > the ->node[] array that provides the structures making up the rcu_node > tree. As you can see, this scan is completely independent of how CPU > numbers might be mapped to rcu_data slots in the leaf rcu_node structures. So this code is clearly not a hotpath, but still its performance matters? Seems like you cannot win here :/