[PATCH 00/48] RCU changes for v6.10

From: Uladzislau Rezki (Sony)
Date: Tue May 07 2024 - 05:36:06 EST


This is for 6.10 kernel:

fixes: Fix a lockdep complain for lazy-preemptible kernel,
remove redundant BH disable for TINY_RCU, remove redundant READ_ONCE()
in tree.c, fix false positives KCSAN splat and fix buffer overflow in
the print_cpu_stall_info().

misc: Misc updates related to bpf, tracing and update the
MAINTAINERS file.

rcu-sync-normal-improve: An improvement of a normal
synchronize_rcu() call in terms of latency. It maintains a separate
track for sync. users only. This approach bypasses per-cpu nocb-lists
thus sync-users do not depend on nocb-list length and how fast regular
callbacks are processed.

rcu-tasks: RCU tasks, switch tasks RCU grace periods to
sleep at TASK_IDLE priority, fix some comments, add some diagnostic
warning to the exit_tasks_rcu_start() and fix a buffer overflow in
the show_rcu_tasks_trace_gp_kthread().

rcutorture: Increase memory to guest OS, fix a Tasks
Rude RCU testing, some updates for TREE09, dump mode information
to debug GP kthread state, remove redundant READ_ONCE(), fix some
comments about RCU_TORTURE_PIPE_LEN and pipe_count, remove some
redundant pointer initialization, fix a hung splat task by when
the rcutorture tests start to exit, fix invalid context warning,
add '--do-kvfree' parameter to torture test and use slow register
unregister callbacks only for rcutype test.

Johannes Berg (1):
rcu: Mollify sparse with RCU guard

Neeraj Upadhyay (1):
MAINTAINERS: Update Neeraj's email address

Nikita Kiryushin (2):
rcu-tasks: Fix show_rcu_tasks_trace_gp_kthread buffer overflow
rcu: Fix buffer overflow in print_cpu_stall_info()

Paul E. McKenney (29):
scftorture: Increase memory provided to guest OS
rcutorture: Disable tracing to permit Tasks Rude RCU testing
rcu: Add lockdep checks and kernel-doc header to rcu_softirq_qs()
rcutorture: Enable RCU priority boosting for TREE09
rcutorture: Dump # online CPUs on insufficient cb-flood laundering
rcutorture: Dump GP kthread state on insufficient cb-flood laundering
rcutorture: ASSERT_EXCLUSIVE_WRITER() for ->rtort_pipe_count updates
rcu-tasks: Make Tasks RCU wait idly for grace-period delays
bpf: Select new NEED_TASKS_RCU Kconfig option
arch: Select new NEED_TASKS_RCU Kconfig option
tracing: Select new NEED_TASKS_RCU Kconfig option
bpf: Choose RCU Tasks based on TASKS_RCU rather than PREEMPTION
ftrace: Choose RCU Tasks based on TASKS_RCU rather than PREEMPTION
rcu: Make TINY_RCU depend on !PREEMPT_RCU rather than !PREEMPTION
srcu: Make Tiny SRCU explicitly disable preemption
rcu: Create NEED_TASKS_RCU to factor out enablement logic
rcu: Remove redundant BH disabling in TINY_RCU
rcu: Make Tiny RCU explicitly disable preemption
rcu: Remove redundant READ_ONCE() of rcu_state.gp_flags in tree.c
rcu: Bring diagnostic read of rcu_state.gp_flags into alignment
rcu: Mark writes to rcu_sync ->gp_count field
rcu: Mark loads from rcu_state.n_online_cpus
rcu: Make hotplug operations track GP state, not flags
rcu: Inform KCSAN of one-byte cmpxchg() in rcu_trc_cmpxchg_need_qs()
rcu: Remove redundant CONFIG_PROVE_RCU #if condition
rcu-tasks: Replace exit_tasks_rcu_start() initialization with
WARN_ON_ONCE()
rcutorture: Remove extraneous rcu_torture_pipe_update_one()
READ_ONCE()
rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment
torture: Scale --do-kvfree test time

Uladzislau Rezki (Sony) (6):
rcu: Add data structures for synchronize_rcu()
rcu: Update lockdep while in RCU read-side critical section
rcu: Reduce synchronize_rcu() latency
rcu: Add a trace event for synchronize_rcu_normal()
rcu: Support direct wake-up of synchronize_rcu() users
rcu: Allocate WQ with WQ_MEM_RECLAIM bit set

Zenghui Yu (1):
doc: Remove references to arrayRCU.rst

Zqiang (7):
rcu-tasks: Fix the comments for tasks_rcu_exit_srcu_stall_timer
rcutorture: Use the gp_kthread_dbg operation specified by cur_ops
rcutorture: Make rcutorture support print rcu-tasks gp state
rcutorture: Removing redundant function pointer initialization
rcutorture: Make stall-tasks directly exit when rcutorture tests end
rcutorture: Fix invalid context warning when enable srcu barrier
testing
rcutorture: Use rcu_gp_slow_register/unregister() only for rcutype
test

linke li (1):
rcutorture: Re-use value stored to ->rtort_pipe_count instead of
re-reading

.mailmap | 3 -
Documentation/RCU/whatisRCU.rst | 6 +-
Documentation/admin-guide/kernel-parameters.txt | 14 ++++
MAINTAINERS | 2
arch/Kconfig | 4 -
include/linux/rcupdate.h | 2
include/linux/rcupdate_wait.h | 18 +++---
include/linux/srcutiny.h | 2
include/trace/events/rcu.h | 27 +++++++++
kernel/bpf/Kconfig | 2
kernel/bpf/trampoline.c | 2
kernel/rcu/Kconfig | 2
kernel/rcu/rcu.h | 20 +++---
kernel/rcu/rcutorture.c | 4 -
kernel/rcu/srcutiny.c | 31 ++++++++--
kernel/rcu/srcutree.c | 5 -
kernel/rcu/sync.c | 8 ++
kernel/rcu/tasks.h | 6 +-
kernel/rcu/tiny.c | 2
kernel/rcu/tree.c | 28 +++++++++
kernel/rcu/tree.h | 14 ++++
kernel/rcu/tree_exp.h | 2
kernel/rcu/tree_plugin.h | 4 -
kernel/rcu/tree_stall.h | 2
kernel/rcu/update.c | 4 -
kernel/trace/Kconfig | 4 -
kernel/trace/ftrace.c | 3 -
tools/testing/selftests/rcutorture/bin/torture.sh | 2
tools/testing/selftests/rcutorture/configs/rcu/TREE09 | 5 +
include/linux/rcupdate.h | 20 +++++-
kernel/rcu/Kconfig | 6 +-
kernel/rcu/rcutorture.c | 81 +++++++++++++++------------
kernel/rcu/tasks.h | 38 +++++++++++-
kernel/rcu/tiny.c | 2
kernel/rcu/tree.c | 408 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
kernel/rcu/tree.h | 10 ++-
kernel/rcu/tree_stall.h | 9 ++-
tools/testing/selftests/rcutorture/bin/torture.sh | 4 -
38 files changed, 666 insertions(+), 140 deletions(-)

--
2.39.2