Expedited grace period changes for 4.3
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest19 patches 16 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/19 | rcu: Stop disabling CPU hotplug in synchronize_rcu_expedited()kernel/ | +2 | 0 replies | |
| 2/19 | rcu: Remove CONFIG_RCU_CPU_STALL_INFODocumentation/ kernel/ kernel/ +13 more | +2 | 4 replies | |
| 3/19 | rcu: Switch synchronize_sched_expedited() to stop_one_cpu()kernel/ kernel/ | +15 | 0 replies | |
| 4/19 | rcu: Rework synchronize_sched_expedited() counter handlingkernel/ kernel/ kernel/ | +36 | 0 replies | |
| 5/19 | rcu: Get rid of synchronize_sched_expedited()'s polling loopkernel/ kernel/ kernel/ | +47 | 0 replies | |
| 6/19 | rcu: Make expedited GP CPU stoppage asynchronouskernel/ kernel/ kernel/ | +25 | 0 replies | |
| 7/19 | rcu: Abstract sequence counting from synchronize_sched_expedited()kernel/ | +58 | 0 replies | |
| 8/19 | rcu: Make synchronize_rcu_expedited() use sequence-counter schemekernel/ | +6 | 0 replies | |
| 9/19 | rcu: Abstract funnel locking from synchronize_sched_expedited()kernel/ | +47 | 0 replies | |
| 10/19 | rcu: Fix synchronize_sched_expedited() type error for "s"kernel/ | +1 | 0 replies | |
| 11/19 | rcu: Use funnel locking for synchronize_rcu_expedited()'s polling loopkernel/ kernel/ | +18 | 0 replies | |
| 12/19 | rcu: Apply rcu_seq operations to _rcu_barrier()include/ kernel/ kernel/ +1 more | +22 | 0 replies | |
| 13/19 | rcu: Consolidate last open-coded expedited memory barrierkernel/ kernel/ | +1 | 0 replies | |
| 14/19 | rcu: Extend expedited funnel locking to rcu_data structurekernel/ kernel/ kernel/ | +21 | 4 replies | |
| 15/19 | rcu: Add stall warnings to synchronize_sched_expedited()kernel/ kernel/ | +55 | 0 replies | |
| 16/19 | documentation: Describe new expedited stall warningsDocumentation/ | +17 | 0 replies | |
| 17/19 | rcu: Pull out wait_event*() condition into helper functionkernel/ | +21 | 0 replies | |
| 18/19 | rcu: Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQSkernel/ kernel/ | +2 | 0 replies | |
| 19/19 | rcu: Add fastpath bypassing funnel lockingDocumentation/ kernel/ kernel/ +1 more | +29 | 8 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH tip/core/rcu 0/19] Expedited grace period changes for 4.3
Hello!
This series contains a series of optimizations for RCU's expedited grace periods that reduce the jitter they induce in other CPUs. There is more work to be done here, but this should introduce a good and sufficient level of instability for 4.3. :-/
1. Stop disabling CPU hotplug in synchronize_rcu_expedited().
Longer term, synchronize_sched_expedited() will get the same treatment.
2. Remove CONFIG_RCU_CPU_STALL_INFO, so that kernels are always
built as if CONFIG_RCU_CPU_STALL_INFO=y. A bit off-topic, but remains in this series due to conflicts.
3. Switch synchronize_sched_expedited() to stop_one_cpu(), courtesy
of Peter Zijlstra.
4. Simplify synchronize_sched_expedited() counter handling.
5. Get rid of synchronize_sched_expedited()'s polling loop in
favor of tree-based funnel locking.
6. Make expedited GP CPU stoppage asynchronous, courtesy of Peter
Zijlstra. This repairs a performance regression in #3.
7. Abstract sequence counting from synchronize_sched_expedited().
8. Make synchronize_rcu_expedited() use sequence-counter scheme.
9. Abstract funnel locking from synchronize_sched_expedited().
10. Fix synchronize_sched_expedited() type error for variable "s".
11. Use funnel locking for synchronize_rcu_expedited()'s polling loop.
12. Apply rcu_seq operations to _rcu_barrier().
13. Consolidate last open-coded expedited memory barrier.
14. Extend expedited funnel locking to rcu_data structure, allowing
full parallel handling of expedited grace periods.
15. Add stall warnings to synchronize_sched_expedited().
16. Document new expedited stall warnings.
17. Pull out wait_event*() condition into helper function.
18. Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQS.
19. Add fastpath bypassing funnel locking to speed up the common
case where only one expedited grace period happens at a time across the full system.
Thanx, Paul
------------------------------------------------------------------------
b/Documentation/RCU/stallwarn.txt | 29 b/Documentation/RCU/trace.txt | 36 b/include/trace/events/rcu.h | 1 b/kernel/rcu/tree.c | 625 +++++----- b/kernel/rcu/tree.h | 39 b/kernel/rcu/tree_plugin.h | 123 - b/kernel/rcu/tree_trace.c | 29 b/lib/Kconfig.debug | 14 b/tools/testing/selftests/rcutorture/configs/rcu/TREE01 | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE02 | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE02-T | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE03 | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE07 | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE08 | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE08-T | 1 b/tools/testing/selftests/rcutorture/configs/rcu/TREE09 | 1 b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 1 20 files changed, 425 insertions(+), 483 deletions(-)