From: Joel Fernandes <joel@joelfernandes.org>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com,
mingo@kernel.org, tglx@linutronix.de, rcu@vger.kernel.org,
joel@joelfernandes.org, boqun.feng@gmail.com,
frederic@kernel.org, quic_neeraju@quicinc.com, urezki@gmail.com,
qiang1.zhang@intel.com, rostedt@goodmis.org
Subject: [GIT PULL] RCU changes for v6.4
Date: Wed, 12 Apr 2023 14:35:12 +0000 [thread overview]
Message-ID: <20230412143512.GA1697547@google.com> (raw)
Hello, Linus,
The following changes since commit fe15c26ee26efa11741a7b632e9f23b01aca4cc6:
Linux 6.3-rc1 (2023-03-05 14:52:03 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jfern/linux.git tags/rcu.6.4.april5.2023.3
for you to fetch changes up to 8ae99857748bece993962dd8d04e096f9e76731f:
Merge branches 'rcu/staging-core', 'rcu/staging-docs' and 'rcu/staging-kfree', remote-tracking branches 'paul/srcu-cf.2023.04.04a', 'fbq/rcu/lockdep.2023.03.27a' and 'fbq/rcu/rcutorture.2023.03.20a' into rcu/staging (2023-04-05 13:50:37 +0000)
Highlights of RCU changes for 6.4 include:
1. Updates and additions to MAINTAINERS files, with Boqun being added to the
RCU entry and Zqiang being added as an RCU reviewer. I have also
transitioned from reviewer to maintainer; however, Paul will be taking
over sending RCU pull-requests for the next merge window.
2. Resolution of hotplug warning in nohz code, achieved by fixing
cpu_is_hotpluggable() through interaction with the nohz subsystem.
Tick dependency modifications by Zqiang, focusing on fixing usage of the
TICK_DEP_BIT_RCU_EXP bitmask.
3. Avoid needless calls to the rcu-lazy shrinker for CONFIG_RCU_LAZY=n kernels,
fixed by Zqiang.
4. Improvements to rcu-tasks stall reporting by Neeraj.
5. Initial renaming of k[v]free_rcu() to k[v]free_rcu_mightsleep() for
increased robustness, affecting several components like mac802154, drbd,
vmw_vmci, tracing, and more. A report [1] by Eric Dumazet showed that the
API could be unknowingly used in an atomic context, so we'd rather make
sure they know what they're asking for by being explicit:
[1] https://lore.kernel.org/all/20221202052847.2623997-1-edumazet@google.com/
6. Documentation updates, including corrections to spelling, clarifications
in comments, and improvements to the srcu_size_state comments.
7. Better srcu_struct cache locality for readers, by adjusting the size of
srcu_struct in support of SRCU usage by Christoph Hellwig.
8. Teach lockdep to detect deadlocks between srcu_read_lock() vs
synchronize_srcu() contributed by Boqun. Previously lockdep could not
detect such deadlocks, now it can.
9. Integration of rcutorture and rcu-related tools, targeted for v6.4 from
Boqun's tree, featuring new SRCU deadlock scenarios, test_nmis module
parameter, and more.
10. Miscellaneous changes, various code cleanups and comment improvements.
Thank you for considering these RCU updates for the 6.4 release.
----------------------------------------------------------------
Bhaskar Chowdhury (1):
tools: rcu: Add usage function and check for argument
Boqun Feng (5):
locking/lockdep: Introduce lock_sync()
rcu: Annotate SRCU's update-side lockdep dependencies
locking: Reduce the number of locks in ww_mutex stress tests
locking/lockdep: Improve the deadlock scenario print for sync and read lock
MAINTAINERS: Add Boqun to RCU entry
Frederic Weisbecker (1):
rcu: Further comment and explain the state space of GP sequences
Joel Fernandes (Google) (7):
srcu: Clarify comments on memory barrier "E"
MAINTAINERS: Change Joel Fernandes from R: to M:
MAINTAINERS: Add Zqiang as a RCU reviewer
tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem
mac802154: Rename kfree_rcu() to kvfree_rcu_mightsleep()
checkpatch: Error out if deprecated RCU API used
Merge branches 'rcu/staging-core', 'rcu/staging-docs' and 'rcu/staging-kfree', remote-tracking branches 'paul/srcu-cf.2023.04.04a', 'fbq/rcu/lockdep.2023.03.27a' and 'fbq/rcu/rcutorture.2023.03.20a' into rcu/staging
Neeraj Upadhyay (1):
rcu-tasks: Report stalls during synchronize_srcu() in rcu_tasks_postscan()
Paul E. McKenney (35):
rcutorture: Add test_nmis module parameter
rcutorture: Set CONFIG_BOOTPARAM_HOTPLUG_CPU0 to offline CPU 0
rcutorture: Make scenario TREE04 enable lazy call_rcu()
torture: Permit kvm-again.sh --duration to default to previous run
torture: Enable clocksource watchdog with "tsc=watchdog"
rcuscale: Move shutdown from wait_event() to wait_event_idle()
refscale: Move shutdown from wait_event() to wait_event_idle()
rcutorture: Add SRCU deadlock scenarios
rcutorture: Add RCU Tasks Trace and SRCU deadlock scenarios
rcutorture: Add srcu_lockdep.sh
rcu-tasks: Fix warning for unused tasks_rcu_exit_srcu
srcu: Add whitespace to __SRCU_STRUCT_INIT() & __DEFINE_SRCU()
srcu: Use static init for statically allocated in-module srcu_struct
srcu: Begin offloading srcu_struct fields to srcu_update
srcu: Move ->level from srcu_struct to srcu_usage
srcu: Move ->srcu_size_state from srcu_struct to srcu_usage
srcu: Move ->srcu_cb_mutex from srcu_struct to srcu_usage
srcu: Move ->lock initialization after srcu_usage allocation
srcu: Move ->lock from srcu_struct to srcu_usage
srcu: Move ->srcu_gp_mutex from srcu_struct to srcu_usage
srcu: Move grace-period fields from srcu_struct to srcu_usage
srcu: Move heuristics fields from srcu_struct to srcu_usage
srcu: Move ->sda_is_static from srcu_struct to srcu_usage
srcu: Move srcu_barrier() fields from srcu_struct to srcu_usage
srcu: Move work-scheduling fields from srcu_struct to srcu_usage
srcu: Check for readers at module-exit time
srcu: Fix long lines in srcu_get_delay()
srcu: Fix long lines in cleanup_srcu_struct()
srcu: Fix long lines in srcu_gp_end()
srcu: Fix long lines in srcu_funnel_gp_start()
rcu: Add comment to rcu_do_batch() identifying rcuoc code path
rcu: Remove CONFIG_SRCU
mm: Remove "select SRCU"
kvm: Remove "select SRCU"
arch/x86: Remove "select SRCU"
Pingfan Liu (1):
srcu: Add comments for srcu_size_state
Qiuxu Zhuo (1):
Documentation/RCU: s/not/note/ in checklist.rst
Randy Dunlap (1):
Documentation: RCU: Correct spelling
Uladzislau Rezki (Sony) (9):
doc: Update whatisRCU.rst
drbd: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
misc: vmw_vmci: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
tracing: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
lib/test_vmalloc.c: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
net/sysctl: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
net/mlx5: Rename kfree_rcu() to kfree_rcu_mightsleep()
ext4/super: Rename kfree_rcu() to kfree_rcu_mightsleep()
rcuscale: Rename kfree_rcu() to kfree_rcu_mightsleep()
Xu Panda (1):
rcu/trace: use strscpy() to instead of strncpy()
Yue Hu (1):
rcutorture: Eliminate variable n_rcu_torture_boost_rterror
Zheng Yejian (1):
rcu: Avoid stack overflow due to __rcu_irq_enter_check_tick() being kprobe-ed
Zqiang (7):
rcutorture: Create nocb kthreads only when testing rcu in CONFIG_RCU_NOCB_CPU=y kernels
rcu: Fix set/clear TICK_DEP_BIT_RCU_EXP bitmask race
rcu: Fix missing TICK_DEP_MASK_RCU_EXP dependency check
rcu: Register rcu-lazy shrinker only for CONFIG_RCU_LAZY=y kernels
rcu: Remove never-set needwake assignment from rcu_report_qs_rdp()
rcu: Permit start_poll_synchronize_rcu_expedited() to be invoked early
rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access
.../Expedited-Grace-Periods.rst | 6 +-
.../Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 2 +-
Documentation/RCU/RTFP.txt | 10 +-
Documentation/RCU/UP.rst | 4 +-
Documentation/RCU/checklist.rst | 2 +-
Documentation/RCU/lockdep.rst | 2 +-
Documentation/RCU/torture.rst | 4 +-
Documentation/RCU/whatisRCU.rst | 6 +-
MAINTAINERS | 4 +-
arch/arm64/kvm/Kconfig | 1 -
arch/mips/kvm/Kconfig | 1 -
arch/powerpc/kvm/Kconfig | 1 -
arch/riscv/kvm/Kconfig | 1 -
arch/s390/kvm/Kconfig | 1 -
arch/x86/Kconfig | 2 -
arch/x86/kvm/Kconfig | 1 -
drivers/base/cpu.c | 3 +-
drivers/block/drbd/drbd_nl.c | 6 +-
drivers/block/drbd/drbd_receiver.c | 4 +-
drivers/block/drbd/drbd_state.c | 2 +-
drivers/misc/vmw_vmci/vmci_context.c | 2 +-
drivers/misc/vmw_vmci/vmci_event.c | 2 +-
.../ethernet/mellanox/mlx5/core/en/tc/int_port.c | 2 +-
.../ethernet/mellanox/mlx5/core/en_accel/macsec.c | 4 +-
fs/ext4/super.c | 2 +-
include/linux/lockdep.h | 8 +-
include/linux/notifier.h | 5 +-
include/linux/srcu.h | 34 +-
include/linux/srcutiny.h | 6 +-
include/linux/srcutree.h | 94 +++--
include/linux/tick.h | 2 +
include/trace/events/rcu.h | 4 +-
include/trace/events/timer.h | 3 +-
kernel/locking/lockdep.c | 64 ++-
kernel/locking/test-ww_mutex.c | 2 +-
kernel/rcu/Kconfig | 3 -
kernel/rcu/rcu.h | 43 +-
kernel/rcu/rcuscale.c | 9 +-
kernel/rcu/rcutorture.c | 234 ++++++++++-
kernel/rcu/refscale.c | 2 +-
kernel/rcu/srcutiny.c | 2 +
kernel/rcu/srcutree.c | 438 ++++++++++++---------
kernel/rcu/tasks.h | 33 ++
kernel/rcu/tree.c | 18 +-
kernel/rcu/tree_exp.h | 16 +-
kernel/rcu/tree_nocb.h | 4 +
kernel/time/tick-sched.c | 16 +-
kernel/trace/trace_osnoise.c | 2 +-
kernel/trace/trace_probe.c | 2 +-
lib/test_vmalloc.c | 2 +-
mm/Kconfig | 1 -
net/core/sysctl_net_core.c | 4 +-
net/mac802154/scan.c | 4 +-
scripts/checkpatch.pl | 9 +
tools/rcu/extract-stall.sh | 26 +-
.../testing/selftests/rcutorture/bin/kvm-again.sh | 2 +-
.../selftests/rcutorture/bin/srcu_lockdep.sh | 78 ++++
tools/testing/selftests/rcutorture/bin/torture.sh | 6 +-
.../selftests/rcutorture/configs/rcu/TREE01 | 1 +
.../selftests/rcutorture/configs/rcu/TREE04 | 1 +
.../selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 4 -
61 files changed, 915 insertions(+), 342 deletions(-)
mode change 100644 => 100755 tools/rcu/extract-stall.sh
create mode 100755 tools/testing/selftests/rcutorture/bin/srcu_lockdep.sh
next reply other threads:[~2023-04-12 14:35 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-12 14:35 Joel Fernandes [this message]
2023-04-24 19:48 ` [GIT PULL] RCU changes for v6.4 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=20230412143512.GA1697547@google.com \
--to=joel@joelfernandes.org \
--cc=boqun.feng@gmail.com \
--cc=frederic@kernel.org \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=qiang1.zhang@intel.com \
--cc=quic_neeraju@quicinc.com \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=urezki@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.