[PATCH rcu 0/32] RCU Tasks updates for v5.20
From: Paul E. McKenney
Date: Mon Jun 20 2022 - 18:54:07 EST
Hello!
This series provides updates for the RCU Tasks family, perhaps most
notably reducing the CPU overhead of RCU Tasks Trace grace periods:
1. rcu-tasks: Check for abandoned callbacks.
2. rcu-tasks: Split rcu_tasks_one_gp() from rcu_tasks_kthread().
3. rcu-tasks: Move synchronize_rcu_tasks_generic() down.
4. rcu-tasks: Drive synchronous grace periods from calling task.
5. rcu-tasks: Merge state into .b.need_qs and atomically update.
6. rcu-tasks: Remove rcu_tasks_trace_postgp() wait for counter.
7. rcu-tasks: Make trc_read_check_handler() fetch
->trc_reader_nesting only once.
8. rcu-tasks: Idle tasks on offline CPUs are in quiescent states.
9. rcu-tasks: Handle idle tasks for recently offlined CPUs.
10. rcu-tasks: RCU Tasks Trace grace-period kthread has implicit QS.
11. rcu-tasks: Make rcu_note_context_switch() unconditionally call
rcu_tasks_qs().
12. rcu-tasks: Simplify trc_inspect_reader() QS logic.
13. rcu-tasks: Add slow-IPI indicator to RCU Tasks Trace stall
warnings.
14. rcu-tasks: Flag offline CPUs in RCU Tasks Trace stall warnings.
15. rcu-tasks: Make RCU Tasks Trace stall warnings print full
.b.need_qs field.
16. rcu-tasks: Make RCU Tasks Trace stall warning handle idle
offline tasks.
17. rcu-tasks: Add data structures for lightweight grace periods.
18. rcu-tasks: Track blocked RCU Tasks Trace readers.
19. rcu-tasks: Untrack blocked RCU Tasks Trace at reader end.
20. rcu-tasks: Add blocked-task indicator to RCU Tasks Trace stall
warnings.
21. rcu-tasks: Move rcu_tasks_trace_pertask() before
rcu_tasks_trace_pregp_step().
22. rcu-tasks: Avoid rcu_tasks_trace_pertask() duplicate list
additions.
23. rcu-tasks: Scan running tasks for RCU Tasks Trace readers.
24. rcu-tasks: Pull in tasks blocked within RCU Tasks Trace readers.
25. rcu-tasks: Stop RCU Tasks Trace from scanning idle tasks.
26. rcu-tasks: Stop RCU Tasks Trace from scanning full tasks list.
27. rcu-tasks: Maintain a count of tasks blocking RCU Tasks Trace
grace period.
28. rcu-tasks: Eliminate RCU Tasks Trace IPIs to online CPUs.
29. rcu-tasks: Disable and enable CPU hotplug in same function.
30. rcu-tasks: Update comments.
31. rcu-tasks: Be more patient for RCU Tasks boot-time testing.
32. rcu-tasks: Use delayed_work to delay
rcu_tasks_verify_self_tests(), courtesy of Waiman Long.
Thanx, Paul
------------------------------------------------------------------------
b/include/linux/rcupdate.h | 18 -
b/include/linux/rcupdate_trace.h | 2
b/include/linux/sched.h | 1
b/init/init_task.c | 1
b/kernel/fork.c | 1
b/kernel/rcu/tasks.h | 5
b/kernel/rcu/tree_plugin.h | 2
b/kernel/sched/core.c | 32 +
include/linux/rcupdate.h | 11
include/linux/sched.h | 3
kernel/rcu/tasks.h | 678 +++++++++++++++++++++++----------------
11 files changed, 466 insertions(+), 288 deletions(-)