From: Neeraj Upadhyay <Neeraj.Upadhyay@kernel.org>
To: torvalds@linux-foundation.org
Cc: paulmck@kernel.org, joel@joelfernandes.org, frederic@kernel.org,
boqun.feng@gmail.com, urezki@gmail.com, neeraj.iitr10@gmail.com,
christophe.jaillet@wanadoo.fr, inwardvessel@gmail.com,
riel@surriel.com, takakura@valinux.co.jp, seanjc@google.com,
thorsten.blum@toblux.com, vschneid@redhat.com,
longman@redhat.com, zhouzhouyi@gmail.com,
qiang.zhang1211@gmail.com, linux-kernel@vger.kernel.org,
kernel-team@meta.com, mingo@kernel.org, tglx@linutronix.de,
rcu@vger.kernel.org
Subject: [GIT PULL] RCU changes for v6.12
Date: Sat, 14 Sep 2024 08:15:27 +0530 [thread overview]
Message-ID: <20240914024527.GA492739@neeraj.linux> (raw)
Hello Linus,
When the merge window opens, please pull this RCU update from:
git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git tags/rcu.release.v6.12
# HEAD: 355debb83bf79853cde43579f88eed16adb1da29: Merge branches 'context_tracking.15.08.24a', 'csd.lock.15.08.24a', 'nocb.09.09.24a', 'rcutorture.14.08.24a', 'rcustall.09.09.24a', 'srcu.12.08.24a', 'rcu.tasks.14.08.24a', 'rcu_scaling_tests.15.08.24a', 'fixes.12.08.24a' and 'misc.11.08.24a' into next.09.09.24a (2024-09-09 00:09:47 +0530)
Following are the merge conflicts with other trees:
1. Merge conflicts with slab tree
Stephen's resolution: https://lore.kernel.org/lkml/20240812124748.3725011b@canb.auug.org.au/
In case you might want to refer to it, a sample tree with resolutions applied is at
git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git heads/rcu.v6.12.slab.tree.conflict_res
2. Merge conflict with kvm-fixes tree
Stephen's resolution: https://lore.kernel.org/lkml/20240905154122.4d1f8ca5@canb.auug.org.au/
In case you might want to refer to it, a sample tree with resolutions applied is at
git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git heads/rcu.v6.12.kvm-fixes.tree.conflict_res
----------------------------------------------------------------
RCU pull request for v6.12
This pull request contains the following branches:
context_tracking.15.08.24a: Rename context tracking state related
symbols and remove references to "dynticks" in various context
tracking state variables and related helpers; force
context_tracking_enabled_this_cpu() to be inlined to avoid
leaving a noinstr section.
csd.lock.15.08.24a: Enhance CSD-lock diagnostic reports; add an API
to provide an indication of ongoing CSD-lock stall.
nocb.09.09.24a: Update and simplify RCU nocb code to handle
(de-)offloading of callbacks only for offline CPUs; fix RT
throttling hrtimer being armed from offline CPU.
rcutorture.14.08.24a: Remove redundant rcu_torture_ops get_gp_completed
fields; add SRCU ->same_gp_state and ->get_comp_state
functions; add generic test for NUM_ACTIVE_*RCU_POLL* for
testing RCU and SRCU polled grace periods; add CFcommon.arch
for arch-specific Kconfig options; print number of update types
in rcu_torture_write_types();
add rcutree.nohz_full_patience_delay testing to the TREE07
scenario; add a stall_cpu_repeat module parameter to test
repeated CPU stalls; add argument to limit number of CPUs a
guest OS can use in torture.sh;
rcustall.09.09.24a: Abbreviate RCU CPU stall warnings during CSD-lock
stalls; Allow dump_cpu_task() to be called without disabling
preemption; defer printing stall-warning backtrace when holding
rcu_node lock.
srcu.12.08.24a: Make SRCU gp seq wrap-around faster; add KCSAN checks
for concurrent updates to ->srcu_n_exp_nodelay and
->reschedule_count which are used in heuristics governing
auto-expediting of normal SRCU grace periods and
grace-period-state-machine delays; mark idle SRCU-barrier
callbacks to help identify stuck SRCU-barrier callback.
rcu.tasks.14.08.24a: Remove RCU Tasks Rude asynchronous APIs as they
are no longer used; stop testing RCU Tasks Rude asynchronous
APIs; fix access to non-existent percpu regions; check
processor-ID assumptions during chosen CPU calculation for
callback enqueuing; update description of rtp->tasks_gp_seq
grace-period sequence number; add rcu_barrier_cb_is_done()
to identify whether a given rcu_barrier callback is stuck;
mark idle Tasks-RCU-barrier callbacks; add
*torture_stats_print() functions to print detailed
diagnostics for Tasks-RCU variants; capture start time of
rcu_barrier_tasks*() operation to help distinguish a hung
barrier operation from a long series of barrier operations.
rcu_scaling_tests.15.08.24a:
refscale: Add a TINY scenario to support tests of Tiny RCU
and Tiny SRCU; Optimize process_durations() operation;
rcuscale: Dump stacks of stalled rcu_scale_writer() instances;
dump grace-period statistics when rcu_scale_writer() stalls;
mark idle RCU-barrier callbacks to identify stuck RCU-barrier
callbacks; print detailed grace-period and barrier diagnostics
on rcu_scale_writer() hangs for Tasks-RCU variants; warn if
async module parameter is specified for RCU implementations
that do not have async primitives such as RCU Tasks Rude;
make all writer tasks report upon hang; tolerate repeated
GFP_KERNEL failure in rcu_scale_writer(); use special allocator
for rcu_scale_writer(); NULL out top-level pointers to heap
memory to avoid double-free bugs on modprobe failures; maintain
per-task instead of per-CPU callbacks count to avoid any issues
with migration of either tasks or callbacks; constify struct
ref_scale_ops.
fixes.12.08.24a: Use system_unbound_wq for kfree_rcu work to avoid
disturbing isolated CPUs.
misc.11.08.24a: Warn on unexpected rcu_state.srs_done_tail state;
Better define "atomic" for list_replace_rcu() and
hlist_replace_rcu() routines; annotate struct
kvfree_rcu_bulk_data with __counted_by().
----------------------------------------------------------------
Christophe JAILLET (2):
refscale: Optimize process_durations()
refscale: Constify struct ref_scale_ops
Frederic Weisbecker (14):
rcu/nocb: Introduce RCU_NOCB_LOCKDEP_WARN()
rcu/nocb: Move nocb field at the end of state struct
rcu/nocb: Assert no callbacks while nocb kthread allocation fails
rcu/nocb: Introduce nocb mutex
rcu/nocb: (De-)offload callbacks on offline CPUs only
rcu/nocb: Remove halfway (de-)offloading handling from bypass
rcu/nocb: Remove halfway (de-)offloading handling from rcu_core()'s QS reporting
rcu/nocb: Remove halfway (de-)offloading handling from rcu_core
rcu/nocb: Remove SEGCBLIST_RCU_CORE
rcu/nocb: Remove SEGCBLIST_KTHREAD_CB
rcu/nocb: Simplify (de-)offloading state machine
rcu/nocb: Fix RT throttling hrtimer armed from offline CPU
rcu/nocb: Conditionally wake up rcuo if not already waiting on GP
rcu/nocb: Remove superfluous memory barrier after bypass enqueue
JP Kobryn (1):
srcu: faster gp seq wrap-around
Neeraj Upadhyay (1):
Merge branches 'context_tracking.15.08.24a', 'csd.lock.15.08.24a', 'nocb.09.09.24a', 'rcutorture.14.08.24a', 'rcustall.09.09.24a', 'srcu.12.08.24a', 'rcu.tasks.14.08.24a', 'rcu_scaling_tests.15.08.24a', 'fixes.12.08.24a' and 'misc.11.08.24a' into next.09.09.24a
Paul E. McKenney (41):
rcutorture: Remove redundant rcu_torture_ops get_gp_completed fields
rcutorture: Add SRCU ->same_gp_state and ->get_comp_state functions
rcutorture: Generic test for NUM_ACTIVE_*RCU_POLL*
rcutorture: Make rcu_torture_write_types() print number of update types
tools/rcu: Remove RCU Tasks Rude asynchronous APIs from rcu-updaters.sh
rcu/kfree: Warn on unexpected tail state
locking/csd_lock: Print large numbers as negatives
rcu: Better define "atomic" for list replacement
rcutorture: Add rcutree.nohz_full_patience_delay to TREE07
srcu: Check for concurrent updates of heuristics
srcu: Mark callbacks not currently participating in barrier operation
rcutorture: Add a stall_cpu_repeat module parameter
torture: Add torture.sh --guest-cpu-limit argument for limited hosts
doc: Remove RCU Tasks Rude asynchronous APIs
rcutorture: Stop testing RCU Tasks Rude asynchronous APIs
rcuscale: Stop testing RCU Tasks Rude asynchronous APIs
rcu-tasks: Remove RCU Tasks Rude asynchronous APIs
rcu/tasks: Check processor-ID assumptions
rcu/tasks: Update rtp->tasks_gp_seq comment
rcu: Provide rcu_barrier_cb_is_done() to check rcu_barrier() CBs
rcu/tasks: Mark callbacks not currently participating in barrier operation
rcu/tasks: Add detailed grace-period and barrier diagnostics
rcu/tasks: Add rcu_barrier_tasks*() start time to diagnostics
refscale: Add TINY scenario
rcuscale: Save a few lines with whitespace-only change
rcuscale: Dump stacks of stalled rcu_scale_writer() instances
rcuscale: Dump grace-period statistics when rcu_scale_writer() stalls
rcu: Mark callbacks not currently participating in barrier operation
rcuscale: Print detailed grace-period and barrier diagnostics
locking/csd_lock: Provide an indication of ongoing CSD-lock stall
locking/csd-lock: Use backoff for repeated reports of same incident
rcu: Summarize RCU CPU stall warnings during CSD-lock stalls
rcu: Extract synchronize_rcu_expedited_stall() from synchronize_rcu_expedited_wait()
rcu: Summarize expedited RCU CPU stall warnings during CSD-lock stalls
rcuscale: Provide clear error when async specified without primitives
rcuscale: Make all writer tasks report upon hang
rcuscale: Make rcu_scale_writer() tolerate repeated GFP_KERNEL failure
rcuscale: Use special allocator for rcu_scale_writer()
rcuscale: NULL out top-level pointers to heap memory
rcuscale: Count outstanding callbacks per-task rather than per-CPU
rcu: Defer printing stall-warning backtrace when holding rcu_node lock
Rik van Riel (1):
smp: print only local CPU info when sched_clock goes backward
Ryo Takakura (1):
rcu: Let dump_cpu_task() be used without preemption disabled
Sean Christopherson (1):
context_tracking: Tag context_tracking_enabled_this_cpu() __always_inline
Thorsten Blum (1):
rcu: Annotate struct kvfree_rcu_bulk_data with __counted_by()
Valentin Schneider (25):
treewide: context_tracking: Rename CONTEXT_* into CT_STATE_*
context_tracking, rcu: Rename RCU_DYNTICKS_IDX into CT_RCU_WATCHING
context_tracking, rcu: Rename ct_dynticks() into ct_rcu_watching()
context_tracking, rcu: Rename ct_dynticks_cpu() into ct_rcu_watching_cpu()
context_tracking, rcu: Rename ct_dynticks_cpu_acquire() into ct_rcu_watching_cpu_acquire()
context_tracking, rcu: Rename struct context_tracking .dynticks_nesting into .nesting
context_tracking, rcu: Rename ct_dynticks_nesting() into ct_nesting()
context_tracking, rcu: Rename ct_dynticks_nesting_cpu() into ct_nesting_cpu()
context_tracking, rcu: Rename struct context_tracking .dynticks_nmi_nesting into .nmi_nesting
context_tracking, rcu: Rename ct_dynticks_nmi_nesting() into ct_nmi_nesting()
context_tracking, rcu: Rename ct_dynticks_nmi_nesting_cpu() into ct_nmi_nesting_cpu()
context_tracking, rcu: Rename DYNTICK_IRQ_NONIDLE into CT_NESTING_IRQ_NONIDLE
context_tracking, rcu: Rename rcu_dynticks_task*() into rcu_task*()
context_tracking, rcu: Rename rcu_dynticks_curr_cpu_in_eqs() into rcu_is_watching_curr_cpu()
rcu: Rename rcu_dynticks_eqs_online() into rcu_watching_online()
rcu: Rename rcu_dynticks_in_eqs() into rcu_watching_snap_in_eqs()
rcu: Rename rcu_dynticks_in_eqs_since() into rcu_watching_snap_stopped_since()
rcu: Rename rcu_dynticks_zero_in_eqs() into rcu_watching_zero_in_eqs()
rcu: Rename struct rcu_data .dynticks_snap into .watching_snap
rcu: Rename struct rcu_data .exp_dynticks_snap into .exp_watching_snap
rcu: Rename dyntick_save_progress_counter() into rcu_watching_snap_save()
rcu: Rename rcu_implicit_dynticks_qs() into rcu_watching_snap_recheck()
rcu: Rename rcu_momentary_dyntick_idle() into rcu_momentary_eqs()
rcu: Update stray documentation references to rcu_dynticks_eqs_{enter, exit}()
context_tracking, rcu: Rename rcu_dyntick trace event into rcu_watching
Waiman Long (1):
rcu: Use system_unbound_wq to avoid disturbing isolated CPUs
Zhouyi Zhou (1):
rcutorture: Add CFcommon.arch for arch-specific Kconfig options
Zqiang (1):
rcu-tasks: Fix access non-existent percpu rtpcp variable in rcu_tasks_need_gpcb()
Documentation/RCU/Design/Data-Structures/Data-Structures.rst | 28 +++---
Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 8 +-
Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg | 8 +-
Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-fqs.svg | 8 +-
Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp.svg | 8 +-
Documentation/RCU/Design/Memory-Ordering/TreeRCU-hotplug.svg | 4 +-
Documentation/RCU/Design/Requirements/Requirements.rst | 3 +-
Documentation/RCU/checklist.rst | 61 ++++++------
Documentation/RCU/whatisRCU.rst | 2 +-
Documentation/admin-guide/kernel-parameters.txt | 20 ++--
arch/Kconfig | 2 +-
arch/arm64/kernel/entry-common.c | 2 +-
arch/powerpc/include/asm/interrupt.h | 6 +-
arch/powerpc/kernel/interrupt.c | 6 +-
arch/powerpc/kernel/syscall.c | 2 +-
arch/x86/entry/common.c | 2 +-
include/linux/context_tracking.h | 32 ++++---
include/linux/context_tracking_state.h | 60 ++++++------
include/linux/entry-common.h | 2 +-
include/linux/rcu_segcblist.h | 6 +-
include/linux/rculist.h | 9 +-
include/linux/rcupdate.h | 15 ++-
include/linux/rcutiny.h | 2 +-
include/linux/rcutree.h | 2 +-
include/linux/smp.h | 6 ++
include/linux/srcutree.h | 15 ++-
include/trace/events/rcu.h | 20 ++--
kernel/context_tracking.c | 140 ++++++++++++++--------------
kernel/entry/common.c | 2 +-
kernel/rcu/rcu.h | 12 ++-
kernel/rcu/rcu_segcblist.c | 11 ---
kernel/rcu/rcu_segcblist.h | 11 +--
kernel/rcu/rcuscale.c | 214 ++++++++++++++++++++++++++++++++++++------
kernel/rcu/rcutorture.c | 121 +++++++++++++++---------
kernel/rcu/refscale.c | 67 ++++++-------
kernel/rcu/srcutree.c | 11 ++-
kernel/rcu/tasks.h | 214 ++++++++++++++++++++++++++++--------------
kernel/rcu/tree.c | 174 ++++++++++++++++------------------
kernel/rcu/tree.h | 10 +-
kernel/rcu/tree_exp.h | 121 +++++++++++++-----------
kernel/rcu/tree_nocb.h | 279 +++++++++++++++++++++----------------------------------
kernel/rcu/tree_plugin.h | 11 ++-
kernel/rcu/tree_stall.h | 16 +++-
kernel/sched/core.c | 6 +-
kernel/smp.c | 38 +++++++-
kernel/stop_machine.c | 2 +-
kernel/trace/trace_osnoise.c | 4 +-
lib/Kconfig.debug | 1 +
tools/rcu/rcu-updaters.sh | 2 -
tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 2 +
tools/testing/selftests/rcutorture/bin/torture.sh | 38 +++++---
tools/testing/selftests/rcutorture/configs/rcu/CFcommon | 2 -
tools/testing/selftests/rcutorture/configs/rcu/CFcommon.i686 | 2 +
tools/testing/selftests/rcutorture/configs/rcu/CFcommon.ppc64le | 1 +
tools/testing/selftests/rcutorture/configs/rcu/CFcommon.x86_64 | 2 +
tools/testing/selftests/rcutorture/configs/rcu/TREE07.boot | 1 +
tools/testing/selftests/rcutorture/configs/refscale/TINY | 20 ++++
57 files changed, 1088 insertions(+), 786 deletions(-)
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/CFcommon.i686
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/CFcommon.ppc64le
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/CFcommon.x86_64
create mode 100644 tools/testing/selftests/rcutorture/configs/refscale/TINY
next reply other threads:[~2024-09-14 2:45 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-14 2:45 Neeraj Upadhyay [this message]
2024-09-18 8:10 ` [GIT PULL] RCU changes for v6.12 pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240914024527.GA492739@neeraj.linux \
--to=neeraj.upadhyay@kernel.org \
--cc=boqun.feng@gmail.com \
--cc=christophe.jaillet@wanadoo.fr \
--cc=frederic@kernel.org \
--cc=inwardvessel@gmail.com \
--cc=joel@joelfernandes.org \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=mingo@kernel.org \
--cc=neeraj.iitr10@gmail.com \
--cc=paulmck@kernel.org \
--cc=qiang.zhang1211@gmail.com \
--cc=rcu@vger.kernel.org \
--cc=riel@surriel.com \
--cc=seanjc@google.com \
--cc=takakura@valinux.co.jp \
--cc=tglx@linutronix.de \
--cc=thorsten.blum@toblux.com \
--cc=torvalds@linux-foundation.org \
--cc=urezki@gmail.com \
--cc=vschneid@redhat.com \
--cc=zhouzhouyi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.