[PATCH tip/core/rcu 0/4] rcu inline, expedited, ->completedcleanups

From: Paul E. McKenney
Date: Tue Nov 10 2009 - 16:37:02 EST


This patchset contains a few fixes from testing and review of treercu.
The review was spurred by the earlier bugs.

1. Some compilers don't like forward references to inline functions.
Make the compiler happy by removing "inline".

2. Although synchronize_sched_expedited() was implemented with a
fastpath to efficiently handle multiple concurrent calls,
the counter increment that enabled this fastpath was omitted.
Add it back in. (And yes, this does make a big difference in
performance and scalability for multiple concurrent calls to
synchronize_sched_expedited(), not that such calls should happen
all that often. Still, no point in bringing the machine to its
knees unnecessarily.)

3. The field rsp->dynticks_completed is now used whether or not
dynticks is enabled. Rename it to rsp->completed_fqs to better
document its new role.

4. Much of the confusion leading to the bugs provoked by testing
with long RCU grace periods was due to the method used to
determine which grace period a given context-switch quiescent
state is to be applied to. This change provides a much more
straightforward detection method for these quiescent states.
The quiescent states induced by force_quiescent_state() still
use the old method, and a separate patch for them is in the
works.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/