public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

             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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox