Linux RCU subsystem development
 help / color / mirror / Atom feed
* [GIT PULL] RCU changes for v7.1
@ 2026-03-31 17:42 Joel Fernandes
  2026-04-13 16:40 ` Linus Torvalds
  2026-04-13 17:00 ` pr-tracker-bot
  0 siblings, 2 replies; 7+ messages in thread
From: Joel Fernandes @ 2026-03-31 17:42 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Paul E. McKenney, Frederic Weisbecker, Neeraj Upadhyay,
	Uladzislau Rezki, Joel Fernandes, joel, agnel.joel, linux-kernel,
	rcu

Hi Linus,

Once the merge window opens, please pull the following RCU changes for v7.1.

The following changes since commit 7aaa8047eafd0bd628065b15757d9b48c5f9c07d:

  Linux 7.0-rc6 (2026-03-29 15:40:00 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git tags/rcu.2026.03.31a

for you to fetch changes up to 95c7d025cc8c3c6c41206e2a18332eb04878b7ef:

  rcutorture: Test call_srcu() with preemption disabled and not (2026-03-30 15:48:14 -0400)

----------------------------------------------------------------
RCU changes for v7.1

NOCB CPU management:

- Consolidate rcu_nocb_cpu_offload() and rcu_nocb_cpu_deoffload() to reduce
  code duplication.
- Extract nocb_bypass_needs_flush() helper to reduce duplication in NOCB
  bypass path.

rcutorture/torture infrastructure:

- Add NOCB01 config for RCU_LAZY torture testing.
- Add NOCB02 config for NOCB poll mode testing.
- Add TRIVIAL-PREEMPT config for textbook-style preemptible RCU torture.
- Test call_srcu() with preemption both disabled and enabled.
- Remove kvm-check-branches.sh in favor of kvm-series.sh.
- Make hangs more visible in torture.sh output.
- Add informative message for tests without a recheck file.
- Fix numeric test comparison in srcu_lockdep.sh.
- Use torture_shutdown_init() in refscale and rcuscale instead of open-coded
  shutdown functions.
- Fix modulo-zero error in torture_hrtimeout_ns().

SRCU:

- Fix SRCU read flavor macro comments.
- Fix s/they disables/they disable/ typo in srcu_read_unlock_fast().

RCU Tasks:

- Document that RCU Tasks Trace grace periods now imply RCU grace periods.
- Remove unnecessary smp_store_release() in cblist_init_generic().

RCU stall:

- Add BOOTPARAM_RCU_STALL_PANIC Kconfig option to allow triggering a kernel
  panic on RCU stall via kernel boot parameter.

----------------------------------------------------------------
Gustavo Luiz Duarte (1):
      rcu: Add BOOTPARAM_RCU_STALL_PANIC Kconfig option

Joel Fernandes (4):
      rcutorture: Add NOCB01 config for RCU_LAZY torture testing
      rcutorture: Add NOCB02 config for nocb poll mode testing
      rcu/nocb: Consolidate rcu_nocb_cpu_offload/deoffload functions
      rcu/nocb: Extract nocb_bypass_needs_flush() to reduce duplication

Paul E. McKenney (12):
      rcutorture: Add a textbook-style trivial preemptible RCU
      kvm-check-branches.sh: Remove in favor of kvm-series.sh
      torture: Make hangs more visible in torture.sh output
      torture: Print informative message for test without recheck file
      rcutorture: Fix numeric "test" comparison in srcu_lockdep.sh
      refscale: Ditch ref_scale_shutdown in favor of torture_shutdown_init()
      rcuscale: Ditch rcu_scale_shutdown in favor of torture_shutdown_init()
      srcu: Fix SRCU read flavor macro comments
      srcu: Fix s/they disables/they disable/ typo in srcu_read_unlock_fast()
      rcu-tasks: Document that RCU Tasks Trace grace periods now imply RCU grace periods
      torture: Avoid modulo-zero error in torture_hrtimeout_ns()
      rcutorture: Test call_srcu() with preemption disabled and not

Zqiang (1):
      rcu-tasks: Remove unnecessary smp_store_release() in cblist_init_generic()

 .../RCU/Design/Requirements/Requirements.rst       |   7 ++
 include/linux/rcupdate.h                           |   9 +-
 include/linux/sched.h                              |   4 +
 include/linux/srcu.h                               |   4 +-
 include/linux/srcutree.h                           |   2 +-
 kernel/rcu/Kconfig.debug                           |  35 ++++++
 kernel/rcu/rcu.h                                   |   4 +
 kernel/rcu/rcuscale.c                              |  78 ++++--------
 kernel/rcu/rcutorture.c                            |  64 +++++++++-
 kernel/rcu/refscale.c                              |  51 +++-----
 kernel/rcu/tasks.h                                 |   6 +-
 kernel/rcu/tree_nocb.h                             | 137 ++++++++++++---------
 kernel/rcu/tree_stall.h                            |   2 +-
 kernel/rcu/update.c                                |  22 ++++
 kernel/torture.c                                   |   2 +-
 .../selftests/rcutorture/bin/kvm-check-branches.sh | 102 ---------------
 .../selftests/rcutorture/bin/kvm-recheck.sh        |   9 +-
 .../selftests/rcutorture/bin/parse-console.sh      |   1 -
 .../selftests/rcutorture/bin/srcu_lockdep.sh       |   6 +-
 .../selftests/rcutorture/configs/rcu/NOCB01        |  21 ++++
 .../selftests/rcutorture/configs/rcu/NOCB01.boot   |   2 +
 .../selftests/rcutorture/configs/rcu/NOCB02        |  20 +++
 .../selftests/rcutorture/configs/rcu/NOCB02.boot   |   3 +
 .../rcutorture/configs/rcu/TRIVIAL-PREEMPT         |  12 ++
 .../rcutorture/configs/rcu/TRIVIAL-PREEMPT.boot    |   3 +
 .../rcutorture/configs/rcuscale/ver_functions.sh   |   2 +-
 .../rcutorture/configs/refscale/ver_functions.sh   |   2 +-
 27 files changed, 334 insertions(+), 276 deletions(-)
 delete mode 100755 tools/testing/selftests/rcutorture/bin/kvm-check-branches.sh
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB01
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB01.boot
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB02
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB02.boot
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL-PREEMPT
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL-PREEMPT.boot

-- 
Joel Fernandes

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RCU changes for v7.1
  2026-03-31 17:42 [GIT PULL] RCU changes for v7.1 Joel Fernandes
@ 2026-04-13 16:40 ` Linus Torvalds
  2026-04-13 18:03   ` Paul E. McKenney
  2026-04-13 19:23   ` Joel Fernandes
  2026-04-13 17:00 ` pr-tracker-bot
  1 sibling, 2 replies; 7+ messages in thread
From: Linus Torvalds @ 2026-04-13 16:40 UTC (permalink / raw)
  To: Joel Fernandes
  Cc: Paul E. McKenney, Frederic Weisbecker, Neeraj Upadhyay,
	Uladzislau Rezki, joel, agnel.joel, linux-kernel, rcu

On Tue, 31 Mar 2026 at 10:42, Joel Fernandes <joelagnelf@nvidia.com> wrote:
>
> RCU stall:
>
> - Add BOOTPARAM_RCU_STALL_PANIC Kconfig option to allow triggering a kernel
>   panic on RCU stall via kernel boot parameter.

No.

Dammit, stop doing these horrible things.

I've said this a million times by now: the kernel config phase is
probably one of the biggest pain points for random new people trying
to build their own kernels, and we DO NOT ASK PEOPLE STUIPID THINGS.

People who want this can damn well use the sysctl or maybe some kernel
command line option instead, and we DO NOT MAKE LIFE WORSE FOR
EVERYBODY ELSE.

I have removed that disgusting kernel kconfig option, and I want to
make it very clear to people that the kconfig files aren't your
personal playgrounds: they are the most visible interface to NORMAL
USERS that we want to encourage to build their own kernels so that
they can participate in kernel development.

So people: next time you feel the urge to add a Kconfig option, take a
deep breath, and look at that Kconfig file, and go "Maybe I can
instead remove this *other* useless option instead".

Let's *improve* on the kernel instead of making things worse.

                 Linus

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RCU changes for v7.1
  2026-03-31 17:42 [GIT PULL] RCU changes for v7.1 Joel Fernandes
  2026-04-13 16:40 ` Linus Torvalds
@ 2026-04-13 17:00 ` pr-tracker-bot
  1 sibling, 0 replies; 7+ messages in thread
From: pr-tracker-bot @ 2026-04-13 17:00 UTC (permalink / raw)
  To: Joel Fernandes
  Cc: Linus Torvalds, Paul E. McKenney, Frederic Weisbecker,
	Neeraj Upadhyay, Uladzislau Rezki, Joel Fernandes, joel,
	agnel.joel, linux-kernel, rcu

The pull request you sent on Tue, 31 Mar 2026 13:42:00 -0400:

> git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git tags/rcu.2026.03.31a

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/28483203f7d7fe4f123ed08266c381fac96b0701

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RCU changes for v7.1
  2026-04-13 16:40 ` Linus Torvalds
@ 2026-04-13 18:03   ` Paul E. McKenney
  2026-04-13 19:38     ` Linus Torvalds
  2026-04-13 19:23   ` Joel Fernandes
  1 sibling, 1 reply; 7+ messages in thread
From: Paul E. McKenney @ 2026-04-13 18:03 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Joel Fernandes, Frederic Weisbecker, Neeraj Upadhyay,
	Uladzislau Rezki, joel, agnel.joel, linux-kernel, rcu

On Mon, Apr 13, 2026 at 09:40:57AM -0700, Linus Torvalds wrote:
> On Tue, 31 Mar 2026 at 10:42, Joel Fernandes <joelagnelf@nvidia.com> wrote:
> >
> > RCU stall:
> >
> > - Add BOOTPARAM_RCU_STALL_PANIC Kconfig option to allow triggering a kernel
> >   panic on RCU stall via kernel boot parameter.
> 
> No.
> 
> Dammit, stop doing these horrible things.
> 
> I've said this a million times by now: the kernel config phase is
> probably one of the biggest pain points for random new people trying
> to build their own kernels, and we DO NOT ASK PEOPLE STUIPID THINGS.
> 
> People who want this can damn well use the sysctl or maybe some kernel
> command line option instead, and we DO NOT MAKE LIFE WORSE FOR
> EVERYBODY ELSE.
> 
> I have removed that disgusting kernel kconfig option, and I want to
> make it very clear to people that the kconfig files aren't your
> personal playgrounds: they are the most visible interface to NORMAL
> USERS that we want to encourage to build their own kernels so that
> they can participate in kernel development.
> 
> So people: next time you feel the urge to add a Kconfig option, take a
> deep breath, and look at that Kconfig file, and go "Maybe I can
> instead remove this *other* useless option instead".
> 
> Let's *improve* on the kernel instead of making things worse.

Apologies!  Would making this instead be a kernel boot parameter be
acceptable?

						Thanx, Paul

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RCU changes for v7.1
  2026-04-13 16:40 ` Linus Torvalds
  2026-04-13 18:03   ` Paul E. McKenney
@ 2026-04-13 19:23   ` Joel Fernandes
  1 sibling, 0 replies; 7+ messages in thread
From: Joel Fernandes @ 2026-04-13 19:23 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Paul E. McKenney, Frederic Weisbecker, Neeraj Upadhyay,
	Uladzislau Rezki, joel, agnel.joel, linux-kernel, rcu,
	Gustavo Luiz Duarte



On 4/13/2026 12:40 PM, Linus Torvalds wrote:
> On Tue, 31 Mar 2026 at 10:42, Joel Fernandes <joelagnelf@nvidia.com> wrote:
>>
>> RCU stall:
>>
>> - Add BOOTPARAM_RCU_STALL_PANIC Kconfig option to allow triggering a kernel
>>   panic on RCU stall via kernel boot parameter.
> 
> No.
> 
> Dammit, stop doing these horrible things.
> 
> I've said this a million times by now: the kernel config phase is
> probably one of the biggest pain points for random new people trying
> to build their own kernels, and we DO NOT ASK PEOPLE STUIPID THINGS.
> 
> People who want this can damn well use the sysctl or maybe some kernel
> command line option instead, and we DO NOT MAKE LIFE WORSE FOR
> EVERYBODY ELSE.
> 
> I have removed that disgusting kernel kconfig option, and I want to
> make it very clear to people that the kconfig files aren't your
> personal playgrounds: they are the most visible interface to NORMAL
> USERS that we want to encourage to build their own kernels so that
> they can participate in kernel development.

Linus, I am Ok with dropping it and thanks for doing that, no problem. sysctl
sounds like a good option to me (CC'ing the patch author, Gustavo, as well in
case they want to go this route).

Regarding boot params, I guess I would like to add - sometimes it is difficult
for people to change kernel boot params (coming from the Android world, I
remember setting boot params required changing and recompiling the bootloader,
and it was much easier to recompile the kernel than the bootloader. The
bootloader came from flash memory and required special signing processes etc).

That said, I totally agree with not polluting and complicating Kconfig
unnecessarily.

> 
> So people: next time you feel the urge to add a Kconfig option, take a
> deep breath, and look at that Kconfig file, and go "Maybe I can
> instead remove this *other* useless option instead".

Noted, though, in this case "removing the other option which is to
panic-on-stall" does not help, because not everyone will want to panic-on-stall
by default? So sysctl to turn on the feature maybe makes sense (for those who
prefer that over boot parameters).

thanks,

--
Joel Fernandes


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RCU changes for v7.1
  2026-04-13 18:03   ` Paul E. McKenney
@ 2026-04-13 19:38     ` Linus Torvalds
  2026-04-13 20:57       ` Paul E. McKenney
  0 siblings, 1 reply; 7+ messages in thread
From: Linus Torvalds @ 2026-04-13 19:38 UTC (permalink / raw)
  To: paulmck
  Cc: Joel Fernandes, Frederic Weisbecker, Neeraj Upadhyay,
	Uladzislau Rezki, joel, agnel.joel, linux-kernel, rcu

On Mon, 13 Apr 2026 at 11:03, Paul E. McKenney <paulmck@kernel.org> wrote:
>
> Apologies!  Would making this instead be a kernel boot parameter be
> acceptable?

We already have a sysctl for it, and you should *already* be able to
use a boot parameter for it with just

        sysctl.kernel.panic_on_rcu_stall=true

Not that I've tried it, so maybe there's some bug somewhere (or
something I've overlooked), but I really think the whole kernel config
option was entirely redundant to begin with.

                 Linus

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] RCU changes for v7.1
  2026-04-13 19:38     ` Linus Torvalds
@ 2026-04-13 20:57       ` Paul E. McKenney
  0 siblings, 0 replies; 7+ messages in thread
From: Paul E. McKenney @ 2026-04-13 20:57 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Joel Fernandes, Frederic Weisbecker, Neeraj Upadhyay,
	Uladzislau Rezki, joel, agnel.joel, linux-kernel, rcu

On Mon, Apr 13, 2026 at 12:38:32PM -0700, Linus Torvalds wrote:
> On Mon, 13 Apr 2026 at 11:03, Paul E. McKenney <paulmck@kernel.org> wrote:
> >
> > Apologies!  Would making this instead be a kernel boot parameter be
> > acceptable?
> 
> We already have a sysctl for it, and you should *already* be able to
> use a boot parameter for it with just
> 
>         sysctl.kernel.panic_on_rcu_stall=true

Thank you, and testing is in progress.

> Not that I've tried it, so maybe there's some bug somewhere (or
> something I've overlooked), but I really think the whole kernel config
> option was entirely redundant to begin with.

Given recent improvements to bootconfig, using the sysctl kernel boot
parameter should be just fine.

Before those improvements, associating particular kernel boot parameters
with all kernels was often problematic in large sets of datacenters.
Even worse were cases where kernel boot parameters needed to be set
differently for different kernel versions.  But for most kernel boot
parameters (including this one), things should be fine now.

More work is needed for early boot parameters, and that is in progress.

In this case, I simply failed to get all the pieces in my head at the
same time.  In particular, I forgot that you can specify kernel boot
parameters for sysctls.  :-/

							Thanx, Paul

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-04-13 20:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-31 17:42 [GIT PULL] RCU changes for v7.1 Joel Fernandes
2026-04-13 16:40 ` Linus Torvalds
2026-04-13 18:03   ` Paul E. McKenney
2026-04-13 19:38     ` Linus Torvalds
2026-04-13 20:57       ` Paul E. McKenney
2026-04-13 19:23   ` Joel Fernandes
2026-04-13 17:00 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox