[PATCH rcu 0/18] RCU Tasks updates for v5.17
From: Paul E. McKenney
Date: Wed Dec 01 2021 - 19:38:32 EST
Hello!
This series provides RCU Tasks updates, including making stall warnings
use task_call_func() and providing better update-side scalability for
call_rcu_tasks_trace() and friends:
1. rcu-tasks: Don't remove tasks with pending IPIs from holdout list.
2. rcu-tasks: Create per-CPU callback lists.
3. rcu-tasks: Introduce ->percpu_enqueue_shift for dynamic queue
selection.
4. rcu-tasks: Convert grace-period counter to grace-period sequence
number.
5. rcu_tasks: Convert bespoke callback list to rcu_segcblist
structure.
6. rcu-tasks: Use spin_lock_rcu_node() and friends.
7. rcu-tasks: Inspect stalled task's trc state in locked state,
courtesy of Neeraj Upadhyay.
8. rcu-tasks: Add a ->percpu_enqueue_lim to the rcu_tasks structure.
9. rcu-tasks: Abstract checking of callback lists.
10. rcu-tasks: Abstract invocations of callbacks.
11. rcu-tasks: Use workqueues for multiple rcu_tasks_invoke_cbs()
invocations.
12. rcu-tasks: Make rcu_barrier_tasks*() handle multiple callback
queues.
13. rcu-tasks: Add rcupdate.rcu_task_enqueue_lim to set initial
queueing.
14. rcu-tasks: Count trylocks to estimate call_rcu_tasks() contention.
15. rcu-tasks: Avoid raw-spinlocked wakeups from
call_rcu_tasks_generic().
16. rcu-tasks: Use more callback queues if contention encountered.
17. rcu-tasks: Use separate ->percpu_dequeue_lim for callback
dequeueing.
18. rcu-tasks: Use fewer callbacks queues if callback flood ends.
Thanx, Paul
------------------------------------------------------------------------
Documentation/admin-guide/kernel-parameters.txt | 16
b/Documentation/admin-guide/kernel-parameters.txt | 7
b/kernel/rcu/Kconfig | 2
b/kernel/rcu/tasks.h | 5
kernel/rcu/tasks.h | 668 ++++++++++++++++------
5 files changed, 518 insertions(+), 180 deletions(-)