[GIT PULL] RCU changes for v6.11

From: Paul E. McKenney
Date: Sun Jul 14 2024 - 12:43:55 EST


Hello, Linus,

When the merge window opens, please pull this RCU update from:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git tags/rcu.2024.07.12a
# HEAD: 02219caa92b5b0ed97f8d8b9cf580f6f34a9be31: Merge branches 'doc.2024.06.06a', 'fixes.2024.07.04a', 'mb.2024.06.28a', 'nocb.2024.06.03a', 'rcu-tasks.2024.06.06a', 'rcutorture.2024.06.06a' and 'srcu.2024.06.18a' into HEAD (2024-07-04 13:54:17 -0700)

----------------------------------------------------------------
RCU pull request for v6.11

doc.2024.06.06a: Update Tasks RCU and Tasks Rude RCU description in
Requirements.rst and clarify rcu_assign_pointer() and
rcu_dereference() ordering properties.

fixes.2024.07.04a: Add lockdep assertions for RCU readers, limit inline
wakeups for callback-bypass synchronize_rcu(), add an
rcutree.nohz_full_patience_delay to reduce nohz_full OS jitter,
add Uladzislau Rezki as RCU maintainer, and fix a subtle
callback-migration memory-ordering issue.

mb.2024.06.28a: Remove a number of redundant memory barriers.

nocb.2024.06.03a: Remove unnecessary bypass-list lock-contention
mitigation, use parking API instead of open-coded ad-hoc
equivalent, and upgrade obsolete comments.

rcu-tasks.2024.06.06a: Revert avoidance of a deadlock that can no
longer occur and properly synchronize Tasks Trace RCU checking
of runqueues.

rcutorture.2024.06.06a: Add tests for handling of double-call_rcu()
bug, add missing MODULE_DESCRIPTION, and add a script that
histograms the number of calls to RCU updaters.

srcu.2024.06.18a: Fill out SRCU polled-grace-period API.

----------------------------------------------------------------
Frederic Weisbecker (13):
rcu/nocb: Fix segcblist state machine comments about bypass
rcu/nocb: Fix segcblist state machine stale comments about timers
rcu/nocb: Use kthread parking instead of ad-hoc implementation
rcu/nocb: Remove buggy bypass lock contention mitigation
Revert "rcu-tasks: Fix synchronize_rcu_tasks() VS zap_pid_ns_processes()"
rcu/tasks: Fix stale task snaphot for Tasks Trace
rcu: Remove full ordering on second EQS snapshot
rcu: Remove superfluous full memory barrier upon first EQS snapshot
rcu/exp: Remove superfluous full memory barrier upon first EQS snapshot
rcu: Remove full memory barrier on boot time eqs sanity check
rcu: Remove full memory barrier on RCU stall printout
rcu/exp: Remove redundant full memory barrier at the end of GP
rcu: Fix rcu_barrier() VS post CPUHP_TEARDOWN_CPU invocation

Jeff Johnson (1):
rcutorture: Add missing MODULE_DESCRIPTION() macros

Joel Fernandes (Google) (1):
rcu/tree: Reduce wake up for synchronize_rcu() common case

Oleg Nesterov (1):
rcu: Eliminate lockless accesses to rcu_sync->gp_count

Paul E. McKenney (13):
rcu: Add lockdep_assert_in_rcu_read_lock() and friends
doc: Update Tasks RCU and Tasks Rude RCU description in Requirements.rst
doc: Clarify rcu_assign_pointer() and rcu_dereference() ordering
rcutorture: Fix rcu_torture_fwd_cb_cr() data race
tools/rcu: Add rcu-updaters.sh script
rcu: Disable interrupts directly in rcu_gp_init()
srcu: Disable interrupts directly in srcu_gp_end()
srcu: Add NUM_ACTIVE_SRCU_POLL_OLDSTATE
srcu: Update cleanup_srcu_struct() comment
srcu: Fill out polled grace-period APIs
rcu: Add rcutree.nohz_full_patience_delay to reduce nohz_full OS jitter
MAINTAINERS: Add Uladzislau Rezki as RCU maintainer
Merge branches 'doc.2024.06.06a', 'fixes.2024.07.04a', 'mb.2024.06.28a', 'nocb.2024.06.03a', 'rcu-tasks.2024.06.06a', 'rcutorture.2024.06.06a' and 'srcu.2024.06.18a' into HEAD

Zqiang (1):
rcutorture: Make rcutorture support srcu double call test

.../Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 6 +-
.../RCU/Design/Requirements/Requirements.rst | 16 +++
Documentation/RCU/whatisRCU.rst | 30 +++--
Documentation/admin-guide/kernel-parameters.txt | 8 ++
MAINTAINERS | 1 +
include/linux/rcu_segcblist.h | 88 ++++++------
include/linux/rcupdate.h | 62 ++++++++-
include/linux/srcu.h | 35 +++++
kernel/pid_namespace.c | 17 ---
kernel/rcu/rcuscale.c | 1 +
kernel/rcu/rcutorture.c | 49 ++++---
kernel/rcu/refscale.c | 1 +
kernel/rcu/srcutiny.c | 3 +-
kernel/rcu/srcutree.c | 13 +-
kernel/rcu/sync.c | 12 +-
kernel/rcu/tasks.h | 26 ++--
kernel/rcu/tree.c | 92 +++++++++----
kernel/rcu/tree.h | 2 +-
kernel/rcu/tree_exp.h | 24 +++-
kernel/rcu/tree_nocb.h | 147 ++++++---------------
kernel/rcu/tree_plugin.h | 14 +-
kernel/rcu/tree_stall.h | 4 +-
kernel/sched/core.c | 14 +-
tools/rcu/rcu-updaters.sh | 52 ++++++++
24 files changed, 439 insertions(+), 278 deletions(-)
create mode 100755 tools/rcu/rcu-updaters.sh