Skip to content

Expedited grace-period improvements for 4.4

Paul E. McKenney lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest18 patches 43 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/18rcu: Use rsp->expedited_wq instead of sync_rcu_preempt_exp_wqkernel/rcu/tree.c kernel/rcu/tree_plugin.h+3 -50 replies
2/18rcu: Move rcu_report_exp_rnp() to allow consolidationkernel/rcu/tree.c kernel/rcu/tree_plugin.h+66 -6622 replies
3/18rcu: Consolidate tree setup for synchronize_rcu_expedited()kernel/rcu/tree.c kernel/rcu/tree.h kernel/rcu/tree_plugin.h+115 -900 replies
4/18rcu: Use single-stage IPI algorithm for RCU expedited grace periodinclude/linux/sched.h kernel/rcu/tree.c kernel/rcu/tree_plugin.h+311 -709 replies
5/18rcu: Move synchronize_sched_expedited() to combining treekernel/rcu/tree.c kernel/rcu/tree.h+82 -420 replies
6/18rcu: Rename qs_pending to core_needs_qskernel/rcu/tree.c kernel/rcu/tree.h kernel/rcu/tree_plugin.h +1 more+12 -120 replies
7/18rcu: Invert passed_quiesce and rename to cpu_no_qsDocumentation/RCU/trace.txt kernel/rcu/tree.c kernel/rcu/tree.h +2 more+33 -330 replies
8/18rcu: Make ->cpu_no_qs be a union for aggregate ORkernel/rcu/tree.c kernel/rcu/tree.h kernel/rcu/tree_plugin.h +1 more+28 -160 replies
9/18rcu: Switch synchronize_sched_expedited() to IPIkernel/rcu/tree.c kernel/rcu/tree.h+20 -152 replies
10/18rcu: Stop silencing lockdep false positive for expedited grace periodskernel/rcu/tree.c kernel/rcu/tree.h+2 -230 replies
11/18rcu: Stop excluding CPU hotplug in synchronize_sched_expedited()kernel/rcu/tree.c+1 -130 replies
12/18cpu: Remove try_get_online_cpus()include/linux/cpu.h kernel/cpu.c+0 -150 replies
13/18rcu: Prepare for consolidating expedited CPU selectionkernel/rcu/tree.c+0 -20 replies
14/18rcu: Consolidate expedited CPU selectionkernel/rcu/tree.c kernel/rcu/tree_plugin.h+5 -630 replies
15/18rcu: Add online/offline info to expedited stall warning messagekernel/rcu/tree.c kernel/rcu/tree.h kernel/rcu/tree_plugin.h+40 -10 replies
16/18rcu: Add tasks to expedited stall-warning messageskernel/rcu/tree.c+1 -10 replies
17/18rcu: Enable stall warnings for synchronize_rcu_expedited()kernel/rcu/tree_plugin.h+1 -20 replies
18/18rcu: Better hotplug handling for synchronize_sched_expedited()kernel/rcu/tree.c+62 -610 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH tip/core/rcu 0/18] Expedited grace-period improvements for 4.4

Hello!

This commit continues the effort to reduce the OS jitter from RCU's expedited grace-period primitives, while also loosening the coupling between CPU hotplug and RCU's expedited grace-period primitives:

1. Use rsp->expedited_wq instead of sync_rcu_preempt_exp_wq to
enable later code consolidation.

2. Move rcu_report_exp_rnp() to allow later code consolidation.

3. Consolidate combining-tree bitmaks setup for the initialization
portion of synchronize_rcu_expedited().

4. Use single-stage IPI algorithm for preemptible-RCU expedited
grace periods.

5. Make synchronize_sched_expedited() use the combining tree
to reduce memory contention when waiting for quiescent states.

6. Rename ->qs_pending to ->core_needs_qs to better match this
field's use.

7. Invert ->passed_quiesce and rename to ->cpu_no_qs in order to
enable later aggregate-OR for requests for normal and expedited grace periods.

8. Make ->cpu_no_qs be a union for aggregate OR.

9. Switch synchronize_sched_expedited() from stop-CPUs to IPI.

10. Stop silencing lockdep false positive for expedited grace periods,
given that synchronize_rcu_expedited() no longer invokes synchronize_sched_expedited(), eliminating the apparent deadlock. (Just for the record, there never was a real deadlock.)

11. Stop excluding CPU hotplug in synchronize_sched_expedited().

12. Remove try_get_online_cpus(), which is now no longer used.

13. Bring sync_sched_exp_select_cpus() into alignment with
sync_rcu_exp_select_cpus() as a first step towards consolidating them into one function.

14. Consolidate expedited CPU selection, now that #13 enabled it.

15. Add online/offline information to expedited stall warning message.

16. Dump blocking tasks in expedited stall-warning messages.

17. Enable stall warnings for synchronize_rcu_expedited().

18. Improve synchronize_sched_expedited() CPU-hotplug handling.

Thanx, Paul

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

 b/Documentation/RCU/trace.txt |   32 +-
 b/include/linux/cpu.h         |    2 
 b/include/linux/sched.h       |   10 
 b/kernel/cpu.c                |   13 
 b/kernel/rcu/tree.c           |  561 ++++++++++++++++++++++++++++++----------
 b/kernel/rcu/tree.h           |   50 ++-
 b/kernel/rcu/tree_plugin.h    |  579 ++++++++++++++++++++++--------------------
 b/kernel/rcu/tree_trace.c     |   10 
 8 files changed, 782 insertions(+), 475 deletions(-)