mbox series

[0/32] RCU Tasks updates for v5.20

Message ID 20220620225402.GA3842369@paulmck-ThinkPad-P17-Gen-1 (mailing list archive)
Headers show
Series RCU Tasks updates for v5.20 | expand

Message

Paul E. McKenney June 20, 2022, 10:54 p.m. UTC
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(-)