[PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites

Paul E. McKenney posted 4 patches 1 month, 2 weeks ago
rcu/SRCU-N         |    3 ++-
rcu/SRCU-T         |    3 ++-
rcu/SRCU-U         |    3 ++-
rcu/TASKS02        |    3 ++-
rcu/TINY01         |    3 ++-
rcu/TINY02         |    3 ++-
rcu/TRACE01        |    3 ++-
rcu/TREE04         |    3 ++-
rcu/TREE05         |    3 ++-
rcu/TREE06         |    3 ++-
rcu/TRIVIAL        |    3 ++-
rcuscale/TINY      |    3 ++-
rcuscale/TRACE01   |    3 ++-
refscale/NOPREEMPT |    3 ++-
refscale/TINY      |    3 ++-
scf/NOPREEMPT      |    3 ++-
16 files changed, 32 insertions(+), 16 deletions(-)
[PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites
Posted by Paul E. McKenney 1 month, 2 weeks ago
Hello!

As of v7.0-rc1, architectures that support preemption, including x86 and
arm64, no longer support CONFIG_PREEMPT_NONE or CONFIG_PREEMPT_VOLUNTARY.
Attempting to build kernels with these two Kconfig options results in
.config errors, which causes torture-test programs such as rcutorture
to throw false-positive errors.  This series fixes this v7.0-rc1
regression by converting these scanarios from CONFIG_PREEMPT_NONE=y or
CONFIG_PREEMPT_VOLUNTARY=y to CONFIG_PREEMPT_LAZY=y.

Those maintaining architectures not supporting preemption might wish to
run rcutorture with CONFIG_PREEMPT_NONE=y and CONFIG_PREEMPT_VOLUNTARY=y
because I no longer have access to any systems supporting these Kconfig
choices.

With all that said, the patches are as follows:

1.	rcutorture: Update due to x86 not supporting none/voluntary
	preemption.

2.	rcuscale: Update due to x86 not supporting none/voluntary
	preemption.

3.	refscale: Update due to x86 not supporting none/voluntary
	preemption.

4.	scftorture: Update due to x86 not supporting none/voluntary
	preemption.

						Thanx, Paul

------------------------------------------------------------------------

 rcu/SRCU-N         |    3 ++-
 rcu/SRCU-T         |    3 ++-
 rcu/SRCU-U         |    3 ++-
 rcu/TASKS02        |    3 ++-
 rcu/TINY01         |    3 ++-
 rcu/TINY02         |    3 ++-
 rcu/TRACE01        |    3 ++-
 rcu/TREE04         |    3 ++-
 rcu/TREE05         |    3 ++-
 rcu/TREE06         |    3 ++-
 rcu/TRIVIAL        |    3 ++-
 rcuscale/TINY      |    3 ++-
 rcuscale/TRACE01   |    3 ++-
 refscale/NOPREEMPT |    3 ++-
 refscale/TINY      |    3 ++-
 scf/NOPREEMPT      |    3 ++-
 16 files changed, 32 insertions(+), 16 deletions(-)
Re: [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites
Posted by Boqun Feng 1 month, 1 week ago
On Tue, Mar 03, 2026 at 03:58:56PM -0800, Paul E. McKenney wrote:
> Hello!
> 
> As of v7.0-rc1, architectures that support preemption, including x86 and
> arm64, no longer support CONFIG_PREEMPT_NONE or CONFIG_PREEMPT_VOLUNTARY.
> Attempting to build kernels with these two Kconfig options results in
> .config errors, which causes torture-test programs such as rcutorture
> to throw false-positive errors.  This series fixes this v7.0-rc1
> regression by converting these scanarios from CONFIG_PREEMPT_NONE=y or
> CONFIG_PREEMPT_VOLUNTARY=y to CONFIG_PREEMPT_LAZY=y.
> 
> Those maintaining architectures not supporting preemption might wish to
> run rcutorture with CONFIG_PREEMPT_NONE=y and CONFIG_PREEMPT_VOLUNTARY=y
> because I no longer have access to any systems supporting these Kconfig
> choices.
> 
> With all that said, the patches are as follows:
> 
> 1.	rcutorture: Update due to x86 not supporting none/voluntary
> 	preemption.
> 
> 2.	rcuscale: Update due to x86 not supporting none/voluntary
> 	preemption.
> 
> 3.	refscale: Update due to x86 not supporting none/voluntary
> 	preemption.
> 
> 4.	scftorture: Update due to x86 not supporting none/voluntary
> 	preemption.
> 

I queued this series at:

	https://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git/ fixes.v7.0

based on v7.0-rc2, and I'm running some test from my end. If everything
goes well, I will send a fix PR before -rc3. Thank you both!

Regards,
Boqun

> 						Thanx, Paul
> 
> ------------------------------------------------------------------------
> 
>  rcu/SRCU-N         |    3 ++-
>  rcu/SRCU-T         |    3 ++-
>  rcu/SRCU-U         |    3 ++-
>  rcu/TASKS02        |    3 ++-
>  rcu/TINY01         |    3 ++-
>  rcu/TINY02         |    3 ++-
>  rcu/TRACE01        |    3 ++-
>  rcu/TREE04         |    3 ++-
>  rcu/TREE05         |    3 ++-
>  rcu/TREE06         |    3 ++-
>  rcu/TRIVIAL        |    3 ++-
>  rcuscale/TINY      |    3 ++-
>  rcuscale/TRACE01   |    3 ++-
>  refscale/NOPREEMPT |    3 ++-
>  refscale/TINY      |    3 ++-
>  scf/NOPREEMPT      |    3 ++-
>  16 files changed, 32 insertions(+), 16 deletions(-)
>