RFC Rework expedited grace periods
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest14 patches 7 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/14 | rcu: Switch synchronize_sched_expedited() to stop_one_cpu()kernel/ kernel/ | +15 | 0 replies | |
| 2/14 | rcu: Rework synchronize_rcu_expedited() counter handlingkernel/ kernel/ kernel/ | +36 | 0 replies | |
| 3/14 | rcu: Get rid of synchronize_sched_expedited()'s polling loopkernel/ kernel/ kernel/ | +47 | 0 replies | |
| 4/14 | rcu: Make expedited GP CPU stoppage asynchronouskernel/ kernel/ kernel/ | +25 | 0 replies | |
| 5/14 | rcu: Abstract sequence counting from synchronize_sched_expedited()kernel/ | +58 | 7 replies | |
| 6/14 | rcu: Make synchronize_rcu_expedited() use sequence-counter schemekernel/ | +6 | 0 replies | |
| 7/14 | rcu: Abstract funnel locking from synchronize_sched_expedited()kernel/ | +47 | 0 replies | |
| 8/14 | rcu: Fix synchronize_sched_expedited() type error for "s"kernel/ | +1 | 0 replies | |
| 9/14 | rcu: Use funnel locking for synchronize_rcu_expedited()'s polling loopkernel/ kernel/ | +18 | 0 replies | |
| 10/14 | rcu: Apply rcu_seq operations to _rcu_barrier()include/ kernel/ kernel/ +1 more | +22 | 0 replies | |
| 11/14 | rcu: Consolidate last open-coded expedited memory barrierkernel/ kernel/ | +1 | 0 replies | |
| 12/14 | rcu: Extend expedited funnel locking to rcu_data structurekernel/ kernel/ kernel/ | +21 | 0 replies | |
| 13/14 | rcu: Add stall warnings to synchronize_sched_expedited()kernel/ kernel/ | +55 | 0 replies | |
| 14/14 | documentation: Describe new expedited stall warningsDocumentation/ | +17 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH RFC tip/core/rcu 0/14] Rework expedited grace periods
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(-)