Hello!

This RFC series reworks the handling of expedited grace periods, eliminating
the previous use of try_stop_cpus(), improving scalability, and adding
an RCU CPU stall-warning capability.  This series is as follows:

1.      Replace try_stop_cpus() with stop_one_cpu(), courtesy of
        Peter Zijlstra.

2.      Improve counter handling to more efficiently detect that some
        other task has already done the required work.

3.      Replace synchronize_sched_expedited()'s polling loop with
        funnel locking.

4.      Replace stop_one_cpu() with stop_one_cpu_nowait() to avoid the
        latency hit from #1 above, also courtesy of Peter Zijlstra.

5.      Abstract the counter handling.

6.      Apply the newly abstracted counter handling to
        synchronize_rcu_expedited().

7.      Abstract the funnel locking.

8.      Fix a stupid type error in synchronize_sched_expedited().

9.      Replace synchronize_rcu_expedited()'s polling with the newly
        abstracted funnel locking.

10.     Apply the abstracted counter handling to _rcu_barrier().

11.     Consolidate the last expedited open-coded expedited memory barrier
        into the counter handling.

12.     Extend the funnel locking to the rcu_data structure in order to
        further increase scalability.

13.     Add stall warnings to synchronize_sched_expedited().

14.     Document the newly added stall warnings.

                                                        Thanx, Paul

------------------------------------------------------------------------

 b/Documentation/RCU/stallwarn.txt |   17 +
 b/include/trace/events/rcu.h      |    1 
 b/kernel/rcu/tree.c               |  581 +++++++++++++++++++-------------------
 b/kernel/rcu/tree.h               |   31 +-
 b/kernel/rcu/tree_plugin.h        |   53 +--
 b/kernel/rcu/tree_trace.c         |   25 -
 6 files changed, 369 insertions(+), 339 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to