* [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites
@ 2026-03-03 23:58 Paul E. McKenney
2026-03-03 23:59 ` [PATCH 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption Paul E. McKenney
` (4 more replies)
0 siblings, 5 replies; 16+ messages in thread
From: Paul E. McKenney @ 2026-03-03 23:58 UTC (permalink / raw)
To: rcu; +Cc: linux-kernel, kernel-team, rostedt
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(-)
^ permalink raw reply [flat|nested] 16+ messages in thread* [PATCH 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-03 23:58 [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Paul E. McKenney @ 2026-03-03 23:59 ` Paul E. McKenney 2026-03-04 17:26 ` [PATCH v2 " Paul E. McKenney 2026-03-03 23:59 ` [PATCH 2/4] rcuscale: " Paul E. McKenney ` (3 subsequent siblings) 4 siblings, 1 reply; 16+ messages in thread From: Paul E. McKenney @ 2026-03-03 23:59 UTC (permalink / raw) To: rcu; +Cc: linux-kernel, kernel-team, rostedt, Paul E. McKenney 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. This commit therefore switches such rcutorture scenarios to CONFIG_PREEMPT_LAZY. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> --- tools/testing/selftests/rcutorture/configs/rcu/SRCU-N | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/SRCU-T | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/SRCU-U | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/TASKS02 | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/TINY01 | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/TINY02 | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/TRACE01 | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/TREE05 | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/TREE06 | 3 ++- tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL | 3 ++- 11 files changed, 22 insertions(+), 11 deletions(-) diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N index 07f5e0a70ae70..90797c9e9410e 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N @@ -2,7 +2,8 @@ CONFIG_RCU_TRACE=n CONFIG_SMP=y CONFIG_NR_CPUS=4 CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n #CHECK#CONFIG_RCU_EXPERT=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T index c70cf0405f248..06e4d1030279c 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U index bc9eeabaa1b18..540fa4ee6b1ba 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 index 2f9fcffff5ae3..dd2bd4e08da4e 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 index bd5ed7b0da5f0..37be5468c9d9f 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 index 30439f6fc20e6..be8860342ef71 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 index 18efab346381a..8fb124c28f283 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 @@ -1,7 +1,8 @@ CONFIG_SMP=y CONFIG_NR_CPUS=5 CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 index f49fda1c88811..f9d54ddc73a20 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 @@ -1,7 +1,8 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 +CONFIG_PREEMPT_LAZY=y CONFIG_PREEMPT_NONE=n -CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n CONFIG_PREEMPT_LAZY=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 index 0513aa33c32c4..93a17fe050bd4 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 @@ -1,6 +1,7 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_LAZY=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 index bfd88c46dbd73..73a8945780abd 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 @@ -1,6 +1,7 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_LAZY=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL index 5d546efa68e83..d18cfbd606220 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL @@ -1,6 +1,7 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_HZ_PERIODIC=n -- 2.40.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-03 23:59 ` [PATCH 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption Paul E. McKenney @ 2026-03-04 17:26 ` Paul E. McKenney 2026-03-05 0:01 ` [PATCH v3 " Paul E. McKenney 0 siblings, 1 reply; 16+ messages in thread From: Paul E. McKenney @ 2026-03-04 17:26 UTC (permalink / raw) To: rcu; +Cc: linux-kernel, kernel-team, rostedt 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. This commit therefore switches such rcutorture scenarios to CONFIG_PREEMPT_LAZY. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> --- Changes since v1: o Add CONFIG_PREEMPT_DYNAMIC=n in order to test non-preemptible RCU. o Remove CONFIG_PREEMPT_COUNT=n because it conflicts with CONFIG_PREEMPT_LAZY=y. o Remove some stray conflicting CONFIG_PREEMPT_LAZY=n instances. diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N index 07f5e0a70ae70..f943cdfb0a741 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N @@ -2,7 +2,9 @@ CONFIG_RCU_TRACE=n CONFIG_SMP=y CONFIG_NR_CPUS=4 CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_DYNAMIC=n +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n #CHECK#CONFIG_RCU_EXPERT=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T index c70cf0405f248..06e4d1030279c 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U index bc9eeabaa1b18..71da6e3e94886 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n @@ -7,4 +8,3 @@ CONFIG_PREEMPT_DYNAMIC=n CONFIG_RCU_TRACE=n CONFIG_DEBUG_LOCK_ALLOC=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n -CONFIG_PREEMPT_COUNT=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 index 2f9fcffff5ae3..dd2bd4e08da4e 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 index bd5ed7b0da5f0..2be53bf60d65b 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 @@ -1,9 +1,9 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n -CONFIG_PREEMPT_LAZY=n #CHECK#CONFIG_TINY_RCU=y CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=y @@ -12,4 +12,3 @@ CONFIG_RCU_TRACE=n #CHECK#CONFIG_RCU_STALL_COMMON=n CONFIG_DEBUG_LOCK_ALLOC=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n -CONFIG_PREEMPT_COUNT=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 index 30439f6fc20e6..be8860342ef71 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 index 18efab346381a..8fb124c28f283 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 @@ -1,7 +1,8 @@ CONFIG_SMP=y CONFIG_NR_CPUS=5 CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 index f49fda1c88811..ac857d5bcb222 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 @@ -1,10 +1,10 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 +CONFIG_PREEMPT_LAZY=y CONFIG_PREEMPT_NONE=n -CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n -CONFIG_PREEMPT_LAZY=n #CHECK#CONFIG_TREE_RCU=y #CHECK#CONFIG_PREEMPT_RCU=n CONFIG_HZ_PERIODIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 index 0513aa33c32c4..61d15b1b54d16 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 @@ -1,9 +1,10 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_DYNAMIC=n +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n -CONFIG_PREEMPT_LAZY=n #CHECK#CONFIG_TREE_RCU=y CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=y diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 index bfd88c46dbd73..0e090bb68a0f6 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 @@ -1,9 +1,10 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_DYNAMIC=n +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n -CONFIG_PREEMPT_LAZY=n #CHECK#CONFIG_TREE_RCU=y #CHECK#CONFIG_PREEMPT_RCU=n CONFIG_HZ_PERIODIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL index 5d546efa68e83..696fba9968c60 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL @@ -1,6 +1,8 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_DYNAMIC=n +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_HZ_PERIODIC=n ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-04 17:26 ` [PATCH v2 " Paul E. McKenney @ 2026-03-05 0:01 ` Paul E. McKenney 2026-03-05 17:53 ` Joel Fernandes 2026-03-05 18:22 ` Boqun Feng 0 siblings, 2 replies; 16+ messages in thread From: Paul E. McKenney @ 2026-03-05 0:01 UTC (permalink / raw) To: rcu; +Cc: linux-kernel, kernel-team, rostedt 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. This commit therefore switches such rcutorture scenarios to CONFIG_PREEMPT_LAZY. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> --- Changes since v2: o Fold in c69ac5693540 ("rcutorture: Adjust scenarios for default lazy preemption") Changes since v1: o Add CONFIG_PREEMPT_DYNAMIC=n in order to test non-preemptible RCU. o Remove CONFIG_PREEMPT_COUNT=n because it conflicts with CONFIG_PREEMPT_LAZY=y. o Remove some stray conflicting CONFIG_PREEMPT_LAZY=n instances. diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N index 07f5e0a70ae70..f943cdfb0a741 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N @@ -2,7 +2,9 @@ CONFIG_RCU_TRACE=n CONFIG_SMP=y CONFIG_NR_CPUS=4 CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_DYNAMIC=n +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n #CHECK#CONFIG_RCU_EXPERT=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T index c70cf0405f248..06e4d1030279c 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U index bc9eeabaa1b18..71da6e3e94886 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n @@ -7,4 +8,3 @@ CONFIG_PREEMPT_DYNAMIC=n CONFIG_RCU_TRACE=n CONFIG_DEBUG_LOCK_ALLOC=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n -CONFIG_PREEMPT_COUNT=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 index 2f9fcffff5ae3..dd2bd4e08da4e 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 index bd5ed7b0da5f0..2be53bf60d65b 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 @@ -1,9 +1,9 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n -CONFIG_PREEMPT_LAZY=n #CHECK#CONFIG_TINY_RCU=y CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=y @@ -12,4 +12,3 @@ CONFIG_RCU_TRACE=n #CHECK#CONFIG_RCU_STALL_COMMON=n CONFIG_DEBUG_LOCK_ALLOC=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n -CONFIG_PREEMPT_COUNT=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 index 30439f6fc20e6..be8860342ef71 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 index 18efab346381a..8fb124c28f283 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 @@ -1,7 +1,8 @@ CONFIG_SMP=y CONFIG_NR_CPUS=5 CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 index 34aee1acb8662..ac857d5bcb222 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 @@ -1,11 +1,12 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 +CONFIG_PREEMPT_LAZY=y CONFIG_PREEMPT_NONE=n -CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n -CONFIG_PREEMPT_LAZY=n #CHECK#CONFIG_TREE_RCU=y +#CHECK#CONFIG_PREEMPT_RCU=n CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=n CONFIG_NO_HZ_FULL=y diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 index 0513aa33c32c4..61d15b1b54d16 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 @@ -1,9 +1,10 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_DYNAMIC=n +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n -CONFIG_PREEMPT_LAZY=n #CHECK#CONFIG_TREE_RCU=y CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=y diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 index cc3ea23c76557..0e090bb68a0f6 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 @@ -1,10 +1,12 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_DYNAMIC=n +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n -CONFIG_PREEMPT_LAZY=n #CHECK#CONFIG_TREE_RCU=y +#CHECK#CONFIG_PREEMPT_RCU=n CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ_FULL=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 index 420632b030dc4..b2ce37861e71a 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 @@ -6,6 +6,7 @@ CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n #CHECK#CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=n CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ_FULL=n diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL index 5d546efa68e83..696fba9968c60 100644 --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL @@ -1,6 +1,8 @@ CONFIG_SMP=y CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_DYNAMIC=n +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_HZ_PERIODIC=n ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-05 0:01 ` [PATCH v3 " Paul E. McKenney @ 2026-03-05 17:53 ` Joel Fernandes 2026-03-05 19:08 ` Paul E. McKenney 2026-03-05 18:22 ` Boqun Feng 1 sibling, 1 reply; 16+ messages in thread From: Joel Fernandes @ 2026-03-05 17:53 UTC (permalink / raw) To: paulmck, rcu; +Cc: linux-kernel, kernel-team, rostedt, Boqun Feng On 3/4/2026 7:01 PM, Paul E. McKenney wrote: > 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. This commit therefore switches such rcutorture scenarios > to CONFIG_PREEMPT_LAZY. > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > --- > > Changes since v2: > > o Fold in c69ac5693540 ("rcutorture: Adjust scenarios for default > lazy preemption") > > Changes since v1: > > o Add CONFIG_PREEMPT_DYNAMIC=n in order to test non-preemptible RCU. > > o Remove CONFIG_PREEMPT_COUNT=n because it conflicts with > CONFIG_PREEMPT_LAZY=y. > > o Remove some stray conflicting CONFIG_PREEMPT_LAZY=n instances. > [...] > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > index 34aee1acb8662..ac857d5bcb222 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > @@ -1,11 +1,12 @@ > CONFIG_SMP=y > CONFIG_NR_CPUS=8 > +CONFIG_PREEMPT_LAZY=y > CONFIG_PREEMPT_NONE=n > -CONFIG_PREEMPT_VOLUNTARY=y > +CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > -CONFIG_PREEMPT_LAZY=n > #CHECK#CONFIG_TREE_RCU=y > +#CHECK#CONFIG_PREEMPT_RCU=n nit: Let us add this #CHECK# to the other configs you changed too? Otherwise it is a bit confusing because it took some digging to clearly see that PREEMPT_DYNAMIC=n and PREEMPT_LAZY=y implies CONFIG_PREEMPT_RCU=n ;-) Otherwise, I could not find any other flaws in the approach and it makes sense, so: Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com> Boqun, you will be taking this through the 7.0-rc tree right? So that 7.0 release tests don't fail. Also I will drop the 2 related rcutorture patches for 7.1 and rebase on top of a 7.0-rc fixes branch Boqun might be creating. Thanks! -- Joel Fernandes [...] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-05 17:53 ` Joel Fernandes @ 2026-03-05 19:08 ` Paul E. McKenney 0 siblings, 0 replies; 16+ messages in thread From: Paul E. McKenney @ 2026-03-05 19:08 UTC (permalink / raw) To: Joel Fernandes; +Cc: rcu, linux-kernel, kernel-team, rostedt, Boqun Feng On Thu, Mar 05, 2026 at 12:53:48PM -0500, Joel Fernandes wrote: > > > On 3/4/2026 7:01 PM, Paul E. McKenney wrote: > > 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. This commit therefore switches such rcutorture scenarios > > to CONFIG_PREEMPT_LAZY. > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > --- > > > > Changes since v2: > > > > o Fold in c69ac5693540 ("rcutorture: Adjust scenarios for default > > lazy preemption") > > > > Changes since v1: > > > > o Add CONFIG_PREEMPT_DYNAMIC=n in order to test non-preemptible RCU. > > > > o Remove CONFIG_PREEMPT_COUNT=n because it conflicts with > > CONFIG_PREEMPT_LAZY=y. > > > > o Remove some stray conflicting CONFIG_PREEMPT_LAZY=n instances. > > > [...] > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > index 34aee1acb8662..ac857d5bcb222 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > @@ -1,11 +1,12 @@ > > CONFIG_SMP=y > > CONFIG_NR_CPUS=8 > > +CONFIG_PREEMPT_LAZY=y > > CONFIG_PREEMPT_NONE=n > > -CONFIG_PREEMPT_VOLUNTARY=y > > +CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > -CONFIG_PREEMPT_LAZY=n > > #CHECK#CONFIG_TREE_RCU=y > > +#CHECK#CONFIG_PREEMPT_RCU=n > > nit: Let us add this #CHECK# to the other configs you changed too? Otherwise it > is a bit confusing because it took some digging to clearly see that > PREEMPT_DYNAMIC=n and PREEMPT_LAZY=y implies CONFIG_PREEMPT_RCU=n ;-) Tell me about it. ;-) I will add "#CHECK#CONFIG_PREEMPT_RCU=n" as a separate non-urgent commit. > Otherwise, I could not find any other flaws in the approach and it makes sense, so: > Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com> > > Boqun, you will be taking this through the 7.0-rc tree right? So that 7.0 > release tests don't fail. Unless I hear otherwise, I will assume that Boqun will apply your Reviewed-by. Easy for me to do, just no point in its being done twice. > Also I will drop the 2 related rcutorture patches for 7.1 and rebase on top of a > 7.0-rc fixes branch Boqun might be creating. Sounds good, and thank you both! Thanx, Paul > Thanks! > > -- > Joel Fernandes > > [...] > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-05 0:01 ` [PATCH v3 " Paul E. McKenney 2026-03-05 17:53 ` Joel Fernandes @ 2026-03-05 18:22 ` Boqun Feng 2026-03-05 19:06 ` Paul E. McKenney 1 sibling, 1 reply; 16+ messages in thread From: Boqun Feng @ 2026-03-05 18:22 UTC (permalink / raw) To: Paul E. McKenney; +Cc: rcu, linux-kernel, kernel-team, rostedt Hi Paul, On Wed, Mar 04, 2026 at 04:01:19PM -0800, Paul E. McKenney wrote: > 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. This commit therefore switches such rcutorture scenarios > to CONFIG_PREEMPT_LAZY. > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > --- > > Changes since v2: > > o Fold in c69ac5693540 ("rcutorture: Adjust scenarios for default > lazy preemption") > I'm not sure I got what the "Fold" here means? I think you didn't do the fold? Because.. > Changes since v1: > > o Add CONFIG_PREEMPT_DYNAMIC=n in order to test non-preemptible RCU. > > o Remove CONFIG_PREEMPT_COUNT=n because it conflicts with > CONFIG_PREEMPT_LAZY=y. > > o Remove some stray conflicting CONFIG_PREEMPT_LAZY=n instances. > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N > index 07f5e0a70ae70..f943cdfb0a741 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N > @@ -2,7 +2,9 @@ CONFIG_RCU_TRACE=n > CONFIG_SMP=y > CONFIG_NR_CPUS=4 > CONFIG_HOTPLUG_CPU=y > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_DYNAMIC=n > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > #CHECK#CONFIG_RCU_EXPERT=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T > index c70cf0405f248..06e4d1030279c 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T > @@ -1,5 +1,6 @@ > CONFIG_SMP=n > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U > index bc9eeabaa1b18..71da6e3e94886 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U > @@ -1,5 +1,6 @@ > CONFIG_SMP=n > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > @@ -7,4 +8,3 @@ CONFIG_PREEMPT_DYNAMIC=n > CONFIG_RCU_TRACE=n > CONFIG_DEBUG_LOCK_ALLOC=n > CONFIG_DEBUG_OBJECTS_RCU_HEAD=n > -CONFIG_PREEMPT_COUNT=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 > index 2f9fcffff5ae3..dd2bd4e08da4e 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 > @@ -1,5 +1,6 @@ > CONFIG_SMP=n > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > index bd5ed7b0da5f0..2be53bf60d65b 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > @@ -1,9 +1,9 @@ > CONFIG_SMP=n > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > -CONFIG_PREEMPT_LAZY=n This is the line that was introduced by the said commit, hence this patch is still separate from that commit I think? Regards, Boqun > #CHECK#CONFIG_TINY_RCU=y > CONFIG_HZ_PERIODIC=n > CONFIG_NO_HZ_IDLE=y > @@ -12,4 +12,3 @@ CONFIG_RCU_TRACE=n > #CHECK#CONFIG_RCU_STALL_COMMON=n > CONFIG_DEBUG_LOCK_ALLOC=n > CONFIG_DEBUG_OBJECTS_RCU_HEAD=n > -CONFIG_PREEMPT_COUNT=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > index 30439f6fc20e6..be8860342ef71 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > @@ -1,5 +1,6 @@ > CONFIG_SMP=n > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > index 18efab346381a..8fb124c28f283 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > @@ -1,7 +1,8 @@ > CONFIG_SMP=y > CONFIG_NR_CPUS=5 > CONFIG_HOTPLUG_CPU=y > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > index 34aee1acb8662..ac857d5bcb222 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > @@ -1,11 +1,12 @@ > CONFIG_SMP=y > CONFIG_NR_CPUS=8 > +CONFIG_PREEMPT_LAZY=y > CONFIG_PREEMPT_NONE=n > -CONFIG_PREEMPT_VOLUNTARY=y > +CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > -CONFIG_PREEMPT_LAZY=n > #CHECK#CONFIG_TREE_RCU=y > +#CHECK#CONFIG_PREEMPT_RCU=n > CONFIG_HZ_PERIODIC=n > CONFIG_NO_HZ_IDLE=n > CONFIG_NO_HZ_FULL=y > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > index 0513aa33c32c4..61d15b1b54d16 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > @@ -1,9 +1,10 @@ > CONFIG_SMP=y > CONFIG_NR_CPUS=8 > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_DYNAMIC=n > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > -CONFIG_PREEMPT_LAZY=n > #CHECK#CONFIG_TREE_RCU=y > CONFIG_HZ_PERIODIC=n > CONFIG_NO_HZ_IDLE=y > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > index cc3ea23c76557..0e090bb68a0f6 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > @@ -1,10 +1,12 @@ > CONFIG_SMP=y > CONFIG_NR_CPUS=8 > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_DYNAMIC=n > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > -CONFIG_PREEMPT_LAZY=n > #CHECK#CONFIG_TREE_RCU=y > +#CHECK#CONFIG_PREEMPT_RCU=n > CONFIG_HZ_PERIODIC=n > CONFIG_NO_HZ_IDLE=y > CONFIG_NO_HZ_FULL=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > index 420632b030dc4..b2ce37861e71a 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > @@ -6,6 +6,7 @@ CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_PREEMPT_DYNAMIC=n > #CHECK#CONFIG_TREE_RCU=y > +CONFIG_PREEMPT_RCU=n > CONFIG_HZ_PERIODIC=n > CONFIG_NO_HZ_IDLE=y > CONFIG_NO_HZ_FULL=n > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > index 5d546efa68e83..696fba9968c60 100644 > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > @@ -1,6 +1,8 @@ > CONFIG_SMP=y > CONFIG_NR_CPUS=8 > -CONFIG_PREEMPT_NONE=y > +CONFIG_PREEMPT_DYNAMIC=n > +CONFIG_PREEMPT_LAZY=y > +CONFIG_PREEMPT_NONE=n > CONFIG_PREEMPT_VOLUNTARY=n > CONFIG_PREEMPT=n > CONFIG_HZ_PERIODIC=n > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-05 18:22 ` Boqun Feng @ 2026-03-05 19:06 ` Paul E. McKenney 2026-03-05 19:59 ` Boqun Feng 0 siblings, 1 reply; 16+ messages in thread From: Paul E. McKenney @ 2026-03-05 19:06 UTC (permalink / raw) To: Boqun Feng; +Cc: rcu, linux-kernel, kernel-team, rostedt On Thu, Mar 05, 2026 at 10:22:35AM -0800, Boqun Feng wrote: > Hi Paul, > > On Wed, Mar 04, 2026 at 04:01:19PM -0800, Paul E. McKenney wrote: > > 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. This commit therefore switches such rcutorture scenarios > > to CONFIG_PREEMPT_LAZY. > > > > Signed-off-by: Paul E. McKenney <paulmck@kernel.org> > > > > --- > > > > Changes since v2: > > > > o Fold in c69ac5693540 ("rcutorture: Adjust scenarios for default > > lazy preemption") > > > > I'm not sure I got what the "Fold" here means? I think you didn't do the > fold? Because.. > > > Changes since v1: > > > > o Add CONFIG_PREEMPT_DYNAMIC=n in order to test non-preemptible RCU. > > > > o Remove CONFIG_PREEMPT_COUNT=n because it conflicts with > > CONFIG_PREEMPT_LAZY=y. > > > > o Remove some stray conflicting CONFIG_PREEMPT_LAZY=n instances. > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N > > index 07f5e0a70ae70..f943cdfb0a741 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-N > > @@ -2,7 +2,9 @@ CONFIG_RCU_TRACE=n > > CONFIG_SMP=y > > CONFIG_NR_CPUS=4 > > CONFIG_HOTPLUG_CPU=y > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_DYNAMIC=n > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > #CHECK#CONFIG_RCU_EXPERT=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T > > index c70cf0405f248..06e4d1030279c 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-T > > @@ -1,5 +1,6 @@ > > CONFIG_SMP=n > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U > > index bc9eeabaa1b18..71da6e3e94886 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/SRCU-U > > @@ -1,5 +1,6 @@ > > CONFIG_SMP=n > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > @@ -7,4 +8,3 @@ CONFIG_PREEMPT_DYNAMIC=n > > CONFIG_RCU_TRACE=n > > CONFIG_DEBUG_LOCK_ALLOC=n > > CONFIG_DEBUG_OBJECTS_RCU_HEAD=n > > -CONFIG_PREEMPT_COUNT=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 > > index 2f9fcffff5ae3..dd2bd4e08da4e 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TASKS02 > > @@ -1,5 +1,6 @@ > > CONFIG_SMP=n > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > index bd5ed7b0da5f0..2be53bf60d65b 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > @@ -1,9 +1,9 @@ > > CONFIG_SMP=n > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > -CONFIG_PREEMPT_LAZY=n > > This is the line that was introduced by the said commit, hence this > patch is still separate from that commit I think? I *think* I have them folded/squashed correctly. I pushed this out to my -rcu "dev" branch. The relevant commits are, in order of increasing time of commit: c69ac5693540 ("rcutorture: Adjust scenarios for default lazy preemption") 86126bc6d7ad ("rcutorture: Update due to x86 not supporting none/voluntary preemption") 5631c1565493 ("Revert "rcutorture: Adjust scenarios for default lazy preemption"") 6fd95cee7427 ("Revert "rcutorture: Update due to x86 not supporting none/voluntary preemption"") 17c52d7b31a1 ("rcutorture: Update due to x86 not supporting none/voluntary preemption") The first was applied by Joel to the shared RCU tree, the second is in my -rcu tree, and the last three are consecutive commits in my -rcu tree. The following command gives no output, which I was interpreting as my having done it correctly. But please double-check. git diff 5631c1565493^..17c52d7b31a1 Thanx, Paul > Regards, > Boqun > > > #CHECK#CONFIG_TINY_RCU=y > > CONFIG_HZ_PERIODIC=n > > CONFIG_NO_HZ_IDLE=y > > @@ -12,4 +12,3 @@ CONFIG_RCU_TRACE=n > > #CHECK#CONFIG_RCU_STALL_COMMON=n > > CONFIG_DEBUG_LOCK_ALLOC=n > > CONFIG_DEBUG_OBJECTS_RCU_HEAD=n > > -CONFIG_PREEMPT_COUNT=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > index 30439f6fc20e6..be8860342ef71 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > @@ -1,5 +1,6 @@ > > CONFIG_SMP=n > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > index 18efab346381a..8fb124c28f283 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > @@ -1,7 +1,8 @@ > > CONFIG_SMP=y > > CONFIG_NR_CPUS=5 > > CONFIG_HOTPLUG_CPU=y > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > index 34aee1acb8662..ac857d5bcb222 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > @@ -1,11 +1,12 @@ > > CONFIG_SMP=y > > CONFIG_NR_CPUS=8 > > +CONFIG_PREEMPT_LAZY=y > > CONFIG_PREEMPT_NONE=n > > -CONFIG_PREEMPT_VOLUNTARY=y > > +CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > -CONFIG_PREEMPT_LAZY=n > > #CHECK#CONFIG_TREE_RCU=y > > +#CHECK#CONFIG_PREEMPT_RCU=n > > CONFIG_HZ_PERIODIC=n > > CONFIG_NO_HZ_IDLE=n > > CONFIG_NO_HZ_FULL=y > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > index 0513aa33c32c4..61d15b1b54d16 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > @@ -1,9 +1,10 @@ > > CONFIG_SMP=y > > CONFIG_NR_CPUS=8 > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_DYNAMIC=n > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > -CONFIG_PREEMPT_LAZY=n > > #CHECK#CONFIG_TREE_RCU=y > > CONFIG_HZ_PERIODIC=n > > CONFIG_NO_HZ_IDLE=y > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > index cc3ea23c76557..0e090bb68a0f6 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > @@ -1,10 +1,12 @@ > > CONFIG_SMP=y > > CONFIG_NR_CPUS=8 > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_DYNAMIC=n > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > -CONFIG_PREEMPT_LAZY=n > > #CHECK#CONFIG_TREE_RCU=y > > +#CHECK#CONFIG_PREEMPT_RCU=n > > CONFIG_HZ_PERIODIC=n > > CONFIG_NO_HZ_IDLE=y > > CONFIG_NO_HZ_FULL=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > index 420632b030dc4..b2ce37861e71a 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > @@ -6,6 +6,7 @@ CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_PREEMPT_DYNAMIC=n > > #CHECK#CONFIG_TREE_RCU=y > > +CONFIG_PREEMPT_RCU=n > > CONFIG_HZ_PERIODIC=n > > CONFIG_NO_HZ_IDLE=y > > CONFIG_NO_HZ_FULL=n > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > index 5d546efa68e83..696fba9968c60 100644 > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > @@ -1,6 +1,8 @@ > > CONFIG_SMP=y > > CONFIG_NR_CPUS=8 > > -CONFIG_PREEMPT_NONE=y > > +CONFIG_PREEMPT_DYNAMIC=n > > +CONFIG_PREEMPT_LAZY=y > > +CONFIG_PREEMPT_NONE=n > > CONFIG_PREEMPT_VOLUNTARY=n > > CONFIG_PREEMPT=n > > CONFIG_HZ_PERIODIC=n > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-05 19:06 ` Paul E. McKenney @ 2026-03-05 19:59 ` Boqun Feng 2026-03-05 20:11 ` Paul E. McKenney 0 siblings, 1 reply; 16+ messages in thread From: Boqun Feng @ 2026-03-05 19:59 UTC (permalink / raw) To: Paul E. McKenney; +Cc: rcu, linux-kernel, kernel-team, rostedt On Thu, Mar 05, 2026 at 11:06:25AM -0800, Paul E. McKenney wrote: > On Thu, Mar 05, 2026 at 10:22:35AM -0800, Boqun Feng wrote: [...] > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > index bd5ed7b0da5f0..2be53bf60d65b 100644 > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > @@ -1,9 +1,9 @@ > > > CONFIG_SMP=n > > > -CONFIG_PREEMPT_NONE=y > > > +CONFIG_PREEMPT_LAZY=y > > > +CONFIG_PREEMPT_NONE=n > > > CONFIG_PREEMPT_VOLUNTARY=n > > > CONFIG_PREEMPT=n > > > CONFIG_PREEMPT_DYNAMIC=n > > > -CONFIG_PREEMPT_LAZY=n > > > > This is the line that was introduced by the said commit, hence this > > patch is still separate from that commit I think? > > I *think* I have them folded/squashed correctly. > > I pushed this out to my -rcu "dev" branch. The relevant commits are, > in order of increasing time of commit: > > c70ac5693540 ("rcutorture: Adjust scenarios for default lazy preemption") It's the commit c69ac5693540 in your "dev" branch, right? > 86126bc6d7ad ("rcutorture: Update due to x86 not supporting none/voluntary preemption") > 5631c1565493 ("Revert "rcutorture: Adjust scenarios for default lazy preemption"") > 6fd95cee7427 ("Revert "rcutorture: Update due to x86 not supporting none/voluntary preemption"") The thing is the combination of the above 4 didn't introduce a clean base in rcu/{TINY01, TREE04, TREE05, TREE06}, as shown by: git diff 'c69ac5693540^..6fd95cee7427' -- tools/testing/selftests/rcutorture/configs/rcu/{TINY01,TREE04,TREE05,TREE06} I took a look, it's because commit 86126bc6d7ad ("rcutorture: Update due to x86 not supporting none/voluntary preemption") was based on commit c69ac5693540, and it moved a few CONFIG_PREEMPT_LAZY configs, and when it got reverted in commit 6fd95cee7427, these configs were moved back so commit 5631c1565493's revert was partially reverted. > 17c52d7b31a1 ("rcutorture: Update due to x86 not supporting none/voluntary preemption") > A simple way to verify would be try `cherry-pick` this commit onto 7.0-rc1. Regards, Boqun > The first was applied by Joel to the shared RCU tree, the second is in my > -rcu tree, and the last three are consecutive commits in my -rcu tree. > The following command gives no output, which I was interpreting as my > having done it correctly. But please double-check. > > git diff 5631c1565493^..17c52d7b31a1 > > Thanx, Paul > > > Regards, > > Boqun > > > > > #CHECK#CONFIG_TINY_RCU=y > > > CONFIG_HZ_PERIODIC=n > > > CONFIG_NO_HZ_IDLE=y > > > @@ -12,4 +12,3 @@ CONFIG_RCU_TRACE=n > > > #CHECK#CONFIG_RCU_STALL_COMMON=n > > > CONFIG_DEBUG_LOCK_ALLOC=n > > > CONFIG_DEBUG_OBJECTS_RCU_HEAD=n > > > -CONFIG_PREEMPT_COUNT=n > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > index 30439f6fc20e6..be8860342ef71 100644 > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > @@ -1,5 +1,6 @@ > > > CONFIG_SMP=n > > > -CONFIG_PREEMPT_NONE=y > > > +CONFIG_PREEMPT_LAZY=y > > > +CONFIG_PREEMPT_NONE=n > > > CONFIG_PREEMPT_VOLUNTARY=n > > > CONFIG_PREEMPT=n > > > CONFIG_PREEMPT_DYNAMIC=n > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > index 18efab346381a..8fb124c28f283 100644 > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > @@ -1,7 +1,8 @@ > > > CONFIG_SMP=y > > > CONFIG_NR_CPUS=5 > > > CONFIG_HOTPLUG_CPU=y > > > -CONFIG_PREEMPT_NONE=y > > > +CONFIG_PREEMPT_LAZY=y > > > +CONFIG_PREEMPT_NONE=n > > > CONFIG_PREEMPT_VOLUNTARY=n > > > CONFIG_PREEMPT=n > > > CONFIG_PREEMPT_DYNAMIC=n > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > index 34aee1acb8662..ac857d5bcb222 100644 > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > @@ -1,11 +1,12 @@ > > > CONFIG_SMP=y > > > CONFIG_NR_CPUS=8 > > > +CONFIG_PREEMPT_LAZY=y > > > CONFIG_PREEMPT_NONE=n > > > -CONFIG_PREEMPT_VOLUNTARY=y > > > +CONFIG_PREEMPT_VOLUNTARY=n > > > CONFIG_PREEMPT=n > > > CONFIG_PREEMPT_DYNAMIC=n > > > -CONFIG_PREEMPT_LAZY=n > > > #CHECK#CONFIG_TREE_RCU=y > > > +#CHECK#CONFIG_PREEMPT_RCU=n > > > CONFIG_HZ_PERIODIC=n > > > CONFIG_NO_HZ_IDLE=n > > > CONFIG_NO_HZ_FULL=y > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > index 0513aa33c32c4..61d15b1b54d16 100644 > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > @@ -1,9 +1,10 @@ > > > CONFIG_SMP=y > > > CONFIG_NR_CPUS=8 > > > -CONFIG_PREEMPT_NONE=y > > > +CONFIG_PREEMPT_DYNAMIC=n > > > +CONFIG_PREEMPT_LAZY=y > > > +CONFIG_PREEMPT_NONE=n > > > CONFIG_PREEMPT_VOLUNTARY=n > > > CONFIG_PREEMPT=n > > > -CONFIG_PREEMPT_LAZY=n > > > #CHECK#CONFIG_TREE_RCU=y > > > CONFIG_HZ_PERIODIC=n > > > CONFIG_NO_HZ_IDLE=y > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > index cc3ea23c76557..0e090bb68a0f6 100644 > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > @@ -1,10 +1,12 @@ > > > CONFIG_SMP=y > > > CONFIG_NR_CPUS=8 > > > -CONFIG_PREEMPT_NONE=y > > > +CONFIG_PREEMPT_DYNAMIC=n > > > +CONFIG_PREEMPT_LAZY=y > > > +CONFIG_PREEMPT_NONE=n > > > CONFIG_PREEMPT_VOLUNTARY=n > > > CONFIG_PREEMPT=n > > > -CONFIG_PREEMPT_LAZY=n > > > #CHECK#CONFIG_TREE_RCU=y > > > +#CHECK#CONFIG_PREEMPT_RCU=n > > > CONFIG_HZ_PERIODIC=n > > > CONFIG_NO_HZ_IDLE=y > > > CONFIG_NO_HZ_FULL=n > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > index 420632b030dc4..b2ce37861e71a 100644 > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > @@ -6,6 +6,7 @@ CONFIG_PREEMPT_VOLUNTARY=n > > > CONFIG_PREEMPT=n > > > CONFIG_PREEMPT_DYNAMIC=n > > > #CHECK#CONFIG_TREE_RCU=y > > > +CONFIG_PREEMPT_RCU=n > > > CONFIG_HZ_PERIODIC=n > > > CONFIG_NO_HZ_IDLE=y > > > CONFIG_NO_HZ_FULL=n > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > index 5d546efa68e83..696fba9968c60 100644 > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > @@ -1,6 +1,8 @@ > > > CONFIG_SMP=y > > > CONFIG_NR_CPUS=8 > > > -CONFIG_PREEMPT_NONE=y > > > +CONFIG_PREEMPT_DYNAMIC=n > > > +CONFIG_PREEMPT_LAZY=y > > > +CONFIG_PREEMPT_NONE=n > > > CONFIG_PREEMPT_VOLUNTARY=n > > > CONFIG_PREEMPT=n > > > CONFIG_HZ_PERIODIC=n > > > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-05 19:59 ` Boqun Feng @ 2026-03-05 20:11 ` Paul E. McKenney 2026-03-05 21:08 ` Boqun Feng 0 siblings, 1 reply; 16+ messages in thread From: Paul E. McKenney @ 2026-03-05 20:11 UTC (permalink / raw) To: Boqun Feng; +Cc: rcu, linux-kernel, kernel-team, rostedt On Thu, Mar 05, 2026 at 11:59:35AM -0800, Boqun Feng wrote: > On Thu, Mar 05, 2026 at 11:06:25AM -0800, Paul E. McKenney wrote: > > On Thu, Mar 05, 2026 at 10:22:35AM -0800, Boqun Feng wrote: > [...] > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > index bd5ed7b0da5f0..2be53bf60d65b 100644 > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > @@ -1,9 +1,9 @@ > > > > CONFIG_SMP=n > > > > -CONFIG_PREEMPT_NONE=y > > > > +CONFIG_PREEMPT_LAZY=y > > > > +CONFIG_PREEMPT_NONE=n > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > CONFIG_PREEMPT=n > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > -CONFIG_PREEMPT_LAZY=n > > > > > > This is the line that was introduced by the said commit, hence this > > > patch is still separate from that commit I think? > > > > I *think* I have them folded/squashed correctly. > > > > I pushed this out to my -rcu "dev" branch. The relevant commits are, > > in order of increasing time of commit: > > > > c70ac5693540 ("rcutorture: Adjust scenarios for default lazy preemption") > > It's the commit c69ac5693540 in your "dev" branch, right? Right you are! > > 86126bc6d7ad ("rcutorture: Update due to x86 not supporting none/voluntary preemption") > > 5631c1565493 ("Revert "rcutorture: Adjust scenarios for default lazy preemption"") > > 6fd95cee7427 ("Revert "rcutorture: Update due to x86 not supporting none/voluntary preemption"") > > The thing is the combination of the above 4 didn't introduce a clean > base in rcu/{TINY01, TREE04, TREE05, TREE06}, as shown by: > > git diff 'c69ac5693540^..6fd95cee7427' -- tools/testing/selftests/rcutorture/configs/rcu/{TINY01,TREE04,TREE05,TREE06} > > I took a look, it's because commit 86126bc6d7ad ("rcutorture: Update due > to x86 not supporting none/voluntary preemption") was based on commit > c69ac5693540, and it moved a few CONFIG_PREEMPT_LAZY configs, and when > it got reverted in commit 6fd95cee7427, these configs were moved back so > commit 5631c1565493's revert was partially reverted. > > > 17c52d7b31a1 ("rcutorture: Update due to x86 not supporting none/voluntary preemption") > > > > A simple way to verify would be try `cherry-pick` this commit onto > 7.0-rc1. Like this? $ git reset --hard v7.0-rc1 $ git cherry-pick 17c52d7b31a1fbec84172d279b3ab0149bc71627 Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TINY01 Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE04 Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE05 Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE06 [detached HEAD 551d9b94e2c80] rcutorture: Update due to x86 not supporting none/voluntary preemption Date: Tue Mar 3 11:28:02 2026 -0800 12 files changed, 29 insertions(+), 13 deletions(-) $ git branch lazy-1 $ git checkout v7.0-rc1 Previous HEAD position was 551d9b94e2c80 rcutorture: Update due to x86 not supporting none/voluntary preemption HEAD is now at 6de23f81a5e08 Linux 7.0-rc1 $ git cherry-pick c69ac56935401534120ef1e40335090b973a97d2 [detached HEAD da3c99da7a639] rcutorture: Adjust scenarios for default lazy preemption Date: Wed Jan 21 10:40:30 2026 -0800 5 files changed, 7 insertions(+) 1$ git cherry-pick 86126bc6d7ad5af56c0bf8beeac12f8feaffa866 [detached HEAD 824577abfb3b0] rcutorture: Update due to x86 not supporting none/voluntary preemption Date: Tue Mar 3 11:28:02 2026 -0800 11 files changed, 26 insertions(+), 17 deletions(-) $ git diff lazy-1 Still no diff output. What am I missing? Thanx, Paul > Regards, > Boqun > > > The first was applied by Joel to the shared RCU tree, the second is in my > > -rcu tree, and the last three are consecutive commits in my -rcu tree. > > The following command gives no output, which I was interpreting as my > > having done it correctly. But please double-check. > > > > git diff 5631c1565493^..17c52d7b31a1 > > > > Thanx, Paul > > > > > Regards, > > > Boqun > > > > > > > #CHECK#CONFIG_TINY_RCU=y > > > > CONFIG_HZ_PERIODIC=n > > > > CONFIG_NO_HZ_IDLE=y > > > > @@ -12,4 +12,3 @@ CONFIG_RCU_TRACE=n > > > > #CHECK#CONFIG_RCU_STALL_COMMON=n > > > > CONFIG_DEBUG_LOCK_ALLOC=n > > > > CONFIG_DEBUG_OBJECTS_RCU_HEAD=n > > > > -CONFIG_PREEMPT_COUNT=n > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > index 30439f6fc20e6..be8860342ef71 100644 > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > @@ -1,5 +1,6 @@ > > > > CONFIG_SMP=n > > > > -CONFIG_PREEMPT_NONE=y > > > > +CONFIG_PREEMPT_LAZY=y > > > > +CONFIG_PREEMPT_NONE=n > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > CONFIG_PREEMPT=n > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > index 18efab346381a..8fb124c28f283 100644 > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > @@ -1,7 +1,8 @@ > > > > CONFIG_SMP=y > > > > CONFIG_NR_CPUS=5 > > > > CONFIG_HOTPLUG_CPU=y > > > > -CONFIG_PREEMPT_NONE=y > > > > +CONFIG_PREEMPT_LAZY=y > > > > +CONFIG_PREEMPT_NONE=n > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > CONFIG_PREEMPT=n > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > index 34aee1acb8662..ac857d5bcb222 100644 > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > @@ -1,11 +1,12 @@ > > > > CONFIG_SMP=y > > > > CONFIG_NR_CPUS=8 > > > > +CONFIG_PREEMPT_LAZY=y > > > > CONFIG_PREEMPT_NONE=n > > > > -CONFIG_PREEMPT_VOLUNTARY=y > > > > +CONFIG_PREEMPT_VOLUNTARY=n > > > > CONFIG_PREEMPT=n > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > -CONFIG_PREEMPT_LAZY=n > > > > #CHECK#CONFIG_TREE_RCU=y > > > > +#CHECK#CONFIG_PREEMPT_RCU=n > > > > CONFIG_HZ_PERIODIC=n > > > > CONFIG_NO_HZ_IDLE=n > > > > CONFIG_NO_HZ_FULL=y > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > index 0513aa33c32c4..61d15b1b54d16 100644 > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > @@ -1,9 +1,10 @@ > > > > CONFIG_SMP=y > > > > CONFIG_NR_CPUS=8 > > > > -CONFIG_PREEMPT_NONE=y > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > +CONFIG_PREEMPT_LAZY=y > > > > +CONFIG_PREEMPT_NONE=n > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > CONFIG_PREEMPT=n > > > > -CONFIG_PREEMPT_LAZY=n > > > > #CHECK#CONFIG_TREE_RCU=y > > > > CONFIG_HZ_PERIODIC=n > > > > CONFIG_NO_HZ_IDLE=y > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > index cc3ea23c76557..0e090bb68a0f6 100644 > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > @@ -1,10 +1,12 @@ > > > > CONFIG_SMP=y > > > > CONFIG_NR_CPUS=8 > > > > -CONFIG_PREEMPT_NONE=y > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > +CONFIG_PREEMPT_LAZY=y > > > > +CONFIG_PREEMPT_NONE=n > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > CONFIG_PREEMPT=n > > > > -CONFIG_PREEMPT_LAZY=n > > > > #CHECK#CONFIG_TREE_RCU=y > > > > +#CHECK#CONFIG_PREEMPT_RCU=n > > > > CONFIG_HZ_PERIODIC=n > > > > CONFIG_NO_HZ_IDLE=y > > > > CONFIG_NO_HZ_FULL=n > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > index 420632b030dc4..b2ce37861e71a 100644 > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > @@ -6,6 +6,7 @@ CONFIG_PREEMPT_VOLUNTARY=n > > > > CONFIG_PREEMPT=n > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > #CHECK#CONFIG_TREE_RCU=y > > > > +CONFIG_PREEMPT_RCU=n > > > > CONFIG_HZ_PERIODIC=n > > > > CONFIG_NO_HZ_IDLE=y > > > > CONFIG_NO_HZ_FULL=n > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > index 5d546efa68e83..696fba9968c60 100644 > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > @@ -1,6 +1,8 @@ > > > > CONFIG_SMP=y > > > > CONFIG_NR_CPUS=8 > > > > -CONFIG_PREEMPT_NONE=y > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > +CONFIG_PREEMPT_LAZY=y > > > > +CONFIG_PREEMPT_NONE=n > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > CONFIG_PREEMPT=n > > > > CONFIG_HZ_PERIODIC=n > > > > > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-05 20:11 ` Paul E. McKenney @ 2026-03-05 21:08 ` Boqun Feng 2026-03-05 23:24 ` Paul E. McKenney 0 siblings, 1 reply; 16+ messages in thread From: Boqun Feng @ 2026-03-05 21:08 UTC (permalink / raw) To: Paul E. McKenney; +Cc: rcu, linux-kernel, kernel-team, rostedt On Thu, Mar 05, 2026 at 12:11:46PM -0800, Paul E. McKenney wrote: > On Thu, Mar 05, 2026 at 11:59:35AM -0800, Boqun Feng wrote: > > On Thu, Mar 05, 2026 at 11:06:25AM -0800, Paul E. McKenney wrote: > > > On Thu, Mar 05, 2026 at 10:22:35AM -0800, Boqun Feng wrote: > > [...] > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > > index bd5ed7b0da5f0..2be53bf60d65b 100644 > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > > @@ -1,9 +1,9 @@ > > > > > CONFIG_SMP=n > > > > > -CONFIG_PREEMPT_NONE=y > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > +CONFIG_PREEMPT_NONE=n > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > CONFIG_PREEMPT=n > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > -CONFIG_PREEMPT_LAZY=n > > > > > > > > This is the line that was introduced by the said commit, hence this > > > > patch is still separate from that commit I think? > > > > > > I *think* I have them folded/squashed correctly. > > > > > > I pushed this out to my -rcu "dev" branch. The relevant commits are, > > > in order of increasing time of commit: > > > > > > c70ac5693540 ("rcutorture: Adjust scenarios for default lazy preemption") > > > > It's the commit c69ac5693540 in your "dev" branch, right? > > Right you are! > > > > 86126bc6d7ad ("rcutorture: Update due to x86 not supporting none/voluntary preemption") > > > 5631c1565493 ("Revert "rcutorture: Adjust scenarios for default lazy preemption"") > > > 6fd95cee7427 ("Revert "rcutorture: Update due to x86 not supporting none/voluntary preemption"") > > > > The thing is the combination of the above 4 didn't introduce a clean > > base in rcu/{TINY01, TREE04, TREE05, TREE06}, as shown by: > > > > git diff 'c69ac5693540^..6fd95cee7427' -- tools/testing/selftests/rcutorture/configs/rcu/{TINY01,TREE04,TREE05,TREE06} > > > > I took a look, it's because commit 86126bc6d7ad ("rcutorture: Update due > > to x86 not supporting none/voluntary preemption") was based on commit > > c69ac5693540, and it moved a few CONFIG_PREEMPT_LAZY configs, and when > > it got reverted in commit 6fd95cee7427, these configs were moved back so > > commit 5631c1565493's revert was partially reverted. > > > > > 17c52d7b31a1 ("rcutorture: Update due to x86 not supporting none/voluntary preemption") > > > > > > > A simple way to verify would be try `cherry-pick` this commit onto > > 7.0-rc1. > > Like this? > > $ git reset --hard v7.0-rc1 > $ git cherry-pick 17c52d7b31a1fbec84172d279b3ab0149bc71627 > Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TINY01 > Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE04 > Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE05 > Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE06 Yeah, the delta is small enough so that 3-way auto-merging can handle it. I will just apply with these resolution. Thanks! > [detached HEAD 551d9b94e2c80] rcutorture: Update due to x86 not supporting none/voluntary preemption > Date: Tue Mar 3 11:28:02 2026 -0800 > 12 files changed, 29 insertions(+), 13 deletions(-) > $ git branch lazy-1 > $ git checkout v7.0-rc1 > Previous HEAD position was 551d9b94e2c80 rcutorture: Update due to x86 not supporting none/voluntary preemption > HEAD is now at 6de23f81a5e08 Linux 7.0-rc1 > $ git cherry-pick c69ac56935401534120ef1e40335090b973a97d2 > [detached HEAD da3c99da7a639] rcutorture: Adjust scenarios for default lazy preemption > Date: Wed Jan 21 10:40:30 2026 -0800 > 5 files changed, 7 insertions(+) > 1$ git cherry-pick 86126bc6d7ad5af56c0bf8beeac12f8feaffa866 > [detached HEAD 824577abfb3b0] rcutorture: Update due to x86 not supporting none/voluntary preemption > Date: Tue Mar 3 11:28:02 2026 -0800 > 11 files changed, 26 insertions(+), 17 deletions(-) > $ git diff lazy-1 > > Still no diff output. What am I missing? > Not important right now, but if you do: git range-diff 'lazy-1^..lazy-1' '17c52d7b31a1^..17c52d7b31a1' you will see if I applied your v3 onto v7.0-rc1, I wouldn't end up having the exact changes as the v3 has (some auto resolution happened). Regards, Boqun > Thanx, Paul > > > Regards, > > Boqun > > > > > The first was applied by Joel to the shared RCU tree, the second is in my > > > -rcu tree, and the last three are consecutive commits in my -rcu tree. > > > The following command gives no output, which I was interpreting as my > > > having done it correctly. But please double-check. > > > > > > git diff 5631c1565493^..17c52d7b31a1 > > > > > > Thanx, Paul > > > > > > > Regards, > > > > Boqun > > > > > > > > > #CHECK#CONFIG_TINY_RCU=y > > > > > CONFIG_HZ_PERIODIC=n > > > > > CONFIG_NO_HZ_IDLE=y > > > > > @@ -12,4 +12,3 @@ CONFIG_RCU_TRACE=n > > > > > #CHECK#CONFIG_RCU_STALL_COMMON=n > > > > > CONFIG_DEBUG_LOCK_ALLOC=n > > > > > CONFIG_DEBUG_OBJECTS_RCU_HEAD=n > > > > > -CONFIG_PREEMPT_COUNT=n > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > > index 30439f6fc20e6..be8860342ef71 100644 > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > > @@ -1,5 +1,6 @@ > > > > > CONFIG_SMP=n > > > > > -CONFIG_PREEMPT_NONE=y > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > +CONFIG_PREEMPT_NONE=n > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > CONFIG_PREEMPT=n > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > > index 18efab346381a..8fb124c28f283 100644 > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > > @@ -1,7 +1,8 @@ > > > > > CONFIG_SMP=y > > > > > CONFIG_NR_CPUS=5 > > > > > CONFIG_HOTPLUG_CPU=y > > > > > -CONFIG_PREEMPT_NONE=y > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > +CONFIG_PREEMPT_NONE=n > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > CONFIG_PREEMPT=n > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > > index 34aee1acb8662..ac857d5bcb222 100644 > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > > @@ -1,11 +1,12 @@ > > > > > CONFIG_SMP=y > > > > > CONFIG_NR_CPUS=8 > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > CONFIG_PREEMPT_NONE=n > > > > > -CONFIG_PREEMPT_VOLUNTARY=y > > > > > +CONFIG_PREEMPT_VOLUNTARY=n > > > > > CONFIG_PREEMPT=n > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > -CONFIG_PREEMPT_LAZY=n > > > > > #CHECK#CONFIG_TREE_RCU=y > > > > > +#CHECK#CONFIG_PREEMPT_RCU=n > > > > > CONFIG_HZ_PERIODIC=n > > > > > CONFIG_NO_HZ_IDLE=n > > > > > CONFIG_NO_HZ_FULL=y > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > > index 0513aa33c32c4..61d15b1b54d16 100644 > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > > @@ -1,9 +1,10 @@ > > > > > CONFIG_SMP=y > > > > > CONFIG_NR_CPUS=8 > > > > > -CONFIG_PREEMPT_NONE=y > > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > +CONFIG_PREEMPT_NONE=n > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > CONFIG_PREEMPT=n > > > > > -CONFIG_PREEMPT_LAZY=n > > > > > #CHECK#CONFIG_TREE_RCU=y > > > > > CONFIG_HZ_PERIODIC=n > > > > > CONFIG_NO_HZ_IDLE=y > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > > index cc3ea23c76557..0e090bb68a0f6 100644 > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > > @@ -1,10 +1,12 @@ > > > > > CONFIG_SMP=y > > > > > CONFIG_NR_CPUS=8 > > > > > -CONFIG_PREEMPT_NONE=y > > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > +CONFIG_PREEMPT_NONE=n > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > CONFIG_PREEMPT=n > > > > > -CONFIG_PREEMPT_LAZY=n > > > > > #CHECK#CONFIG_TREE_RCU=y > > > > > +#CHECK#CONFIG_PREEMPT_RCU=n > > > > > CONFIG_HZ_PERIODIC=n > > > > > CONFIG_NO_HZ_IDLE=y > > > > > CONFIG_NO_HZ_FULL=n > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > > index 420632b030dc4..b2ce37861e71a 100644 > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > > @@ -6,6 +6,7 @@ CONFIG_PREEMPT_VOLUNTARY=n > > > > > CONFIG_PREEMPT=n > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > #CHECK#CONFIG_TREE_RCU=y > > > > > +CONFIG_PREEMPT_RCU=n > > > > > CONFIG_HZ_PERIODIC=n > > > > > CONFIG_NO_HZ_IDLE=y > > > > > CONFIG_NO_HZ_FULL=n > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > > index 5d546efa68e83..696fba9968c60 100644 > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > > @@ -1,6 +1,8 @@ > > > > > CONFIG_SMP=y > > > > > CONFIG_NR_CPUS=8 > > > > > -CONFIG_PREEMPT_NONE=y > > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > +CONFIG_PREEMPT_NONE=n > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > CONFIG_PREEMPT=n > > > > > CONFIG_HZ_PERIODIC=n > > > > > > > > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption 2026-03-05 21:08 ` Boqun Feng @ 2026-03-05 23:24 ` Paul E. McKenney 0 siblings, 0 replies; 16+ messages in thread From: Paul E. McKenney @ 2026-03-05 23:24 UTC (permalink / raw) To: Boqun Feng; +Cc: rcu, linux-kernel, kernel-team, rostedt On Thu, Mar 05, 2026 at 01:08:47PM -0800, Boqun Feng wrote: > On Thu, Mar 05, 2026 at 12:11:46PM -0800, Paul E. McKenney wrote: > > On Thu, Mar 05, 2026 at 11:59:35AM -0800, Boqun Feng wrote: > > > On Thu, Mar 05, 2026 at 11:06:25AM -0800, Paul E. McKenney wrote: > > > > On Thu, Mar 05, 2026 at 10:22:35AM -0800, Boqun Feng wrote: > > > [...] > > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > > > index bd5ed7b0da5f0..2be53bf60d65b 100644 > > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > > > > > @@ -1,9 +1,9 @@ > > > > > > CONFIG_SMP=n > > > > > > -CONFIG_PREEMPT_NONE=y > > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > > +CONFIG_PREEMPT_NONE=n > > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > > CONFIG_PREEMPT=n > > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > > -CONFIG_PREEMPT_LAZY=n > > > > > > > > > > This is the line that was introduced by the said commit, hence this > > > > > patch is still separate from that commit I think? > > > > > > > > I *think* I have them folded/squashed correctly. > > > > > > > > I pushed this out to my -rcu "dev" branch. The relevant commits are, > > > > in order of increasing time of commit: > > > > > > > > c70ac5693540 ("rcutorture: Adjust scenarios for default lazy preemption") > > > > > > It's the commit c69ac5693540 in your "dev" branch, right? > > > > Right you are! > > > > > > 86126bc6d7ad ("rcutorture: Update due to x86 not supporting none/voluntary preemption") > > > > 5631c1565493 ("Revert "rcutorture: Adjust scenarios for default lazy preemption"") > > > > 6fd95cee7427 ("Revert "rcutorture: Update due to x86 not supporting none/voluntary preemption"") > > > > > > The thing is the combination of the above 4 didn't introduce a clean > > > base in rcu/{TINY01, TREE04, TREE05, TREE06}, as shown by: > > > > > > git diff 'c69ac5693540^..6fd95cee7427' -- tools/testing/selftests/rcutorture/configs/rcu/{TINY01,TREE04,TREE05,TREE06} > > > > > > I took a look, it's because commit 86126bc6d7ad ("rcutorture: Update due > > > to x86 not supporting none/voluntary preemption") was based on commit > > > c69ac5693540, and it moved a few CONFIG_PREEMPT_LAZY configs, and when > > > it got reverted in commit 6fd95cee7427, these configs were moved back so > > > commit 5631c1565493's revert was partially reverted. > > > > > > > 17c52d7b31a1 ("rcutorture: Update due to x86 not supporting none/voluntary preemption") > > > > > > > > > > A simple way to verify would be try `cherry-pick` this commit onto > > > 7.0-rc1. > > > > Like this? > > > > $ git reset --hard v7.0-rc1 > > $ git cherry-pick 17c52d7b31a1fbec84172d279b3ab0149bc71627 > > Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TINY01 > > Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > Yeah, the delta is small enough so that 3-way auto-merging can handle > it. I will just apply with these resolution. Thanks! > > > [detached HEAD 551d9b94e2c80] rcutorture: Update due to x86 not supporting none/voluntary preemption > > Date: Tue Mar 3 11:28:02 2026 -0800 > > 12 files changed, 29 insertions(+), 13 deletions(-) > > $ git branch lazy-1 > > $ git checkout v7.0-rc1 > > Previous HEAD position was 551d9b94e2c80 rcutorture: Update due to x86 not supporting none/voluntary preemption > > HEAD is now at 6de23f81a5e08 Linux 7.0-rc1 > > $ git cherry-pick c69ac56935401534120ef1e40335090b973a97d2 > > [detached HEAD da3c99da7a639] rcutorture: Adjust scenarios for default lazy preemption > > Date: Wed Jan 21 10:40:30 2026 -0800 > > 5 files changed, 7 insertions(+) > > 1$ git cherry-pick 86126bc6d7ad5af56c0bf8beeac12f8feaffa866 > > [detached HEAD 824577abfb3b0] rcutorture: Update due to x86 not supporting none/voluntary preemption > > Date: Tue Mar 3 11:28:02 2026 -0800 > > 11 files changed, 26 insertions(+), 17 deletions(-) > > $ git diff lazy-1 > > > > Still no diff output. What am I missing? > > Not important right now, but if you do: > > git range-diff 'lazy-1^..lazy-1' '17c52d7b31a1^..17c52d7b31a1' > > you will see if I applied your v3 onto v7.0-rc1, I wouldn't end up > having the exact changes as the v3 has (some auto resolution happened). Heh! The TREE05 diffs are different on -rcu than directly on v7.0-rc1, but the resulting files compare equal. Cute!!! Thanx, Paul > Regards, > Boqun > > > Thanx, Paul > > > > > Regards, > > > Boqun > > > > > > > The first was applied by Joel to the shared RCU tree, the second is in my > > > > -rcu tree, and the last three are consecutive commits in my -rcu tree. > > > > The following command gives no output, which I was interpreting as my > > > > having done it correctly. But please double-check. > > > > > > > > git diff 5631c1565493^..17c52d7b31a1 > > > > > > > > Thanx, Paul > > > > > > > > > Regards, > > > > > Boqun > > > > > > > > > > > #CHECK#CONFIG_TINY_RCU=y > > > > > > CONFIG_HZ_PERIODIC=n > > > > > > CONFIG_NO_HZ_IDLE=y > > > > > > @@ -12,4 +12,3 @@ CONFIG_RCU_TRACE=n > > > > > > #CHECK#CONFIG_RCU_STALL_COMMON=n > > > > > > CONFIG_DEBUG_LOCK_ALLOC=n > > > > > > CONFIG_DEBUG_OBJECTS_RCU_HEAD=n > > > > > > -CONFIG_PREEMPT_COUNT=n > > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > > > index 30439f6fc20e6..be8860342ef71 100644 > > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TINY02 > > > > > > @@ -1,5 +1,6 @@ > > > > > > CONFIG_SMP=n > > > > > > -CONFIG_PREEMPT_NONE=y > > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > > +CONFIG_PREEMPT_NONE=n > > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > > CONFIG_PREEMPT=n > > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > > > index 18efab346381a..8fb124c28f283 100644 > > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 > > > > > > @@ -1,7 +1,8 @@ > > > > > > CONFIG_SMP=y > > > > > > CONFIG_NR_CPUS=5 > > > > > > CONFIG_HOTPLUG_CPU=y > > > > > > -CONFIG_PREEMPT_NONE=y > > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > > +CONFIG_PREEMPT_NONE=n > > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > > CONFIG_PREEMPT=n > > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > > > index 34aee1acb8662..ac857d5bcb222 100644 > > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 > > > > > > @@ -1,11 +1,12 @@ > > > > > > CONFIG_SMP=y > > > > > > CONFIG_NR_CPUS=8 > > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > > CONFIG_PREEMPT_NONE=n > > > > > > -CONFIG_PREEMPT_VOLUNTARY=y > > > > > > +CONFIG_PREEMPT_VOLUNTARY=n > > > > > > CONFIG_PREEMPT=n > > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > > -CONFIG_PREEMPT_LAZY=n > > > > > > #CHECK#CONFIG_TREE_RCU=y > > > > > > +#CHECK#CONFIG_PREEMPT_RCU=n > > > > > > CONFIG_HZ_PERIODIC=n > > > > > > CONFIG_NO_HZ_IDLE=n > > > > > > CONFIG_NO_HZ_FULL=y > > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > > > index 0513aa33c32c4..61d15b1b54d16 100644 > > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 > > > > > > @@ -1,9 +1,10 @@ > > > > > > CONFIG_SMP=y > > > > > > CONFIG_NR_CPUS=8 > > > > > > -CONFIG_PREEMPT_NONE=y > > > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > > +CONFIG_PREEMPT_NONE=n > > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > > CONFIG_PREEMPT=n > > > > > > -CONFIG_PREEMPT_LAZY=n > > > > > > #CHECK#CONFIG_TREE_RCU=y > > > > > > CONFIG_HZ_PERIODIC=n > > > > > > CONFIG_NO_HZ_IDLE=y > > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > > > index cc3ea23c76557..0e090bb68a0f6 100644 > > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 > > > > > > @@ -1,10 +1,12 @@ > > > > > > CONFIG_SMP=y > > > > > > CONFIG_NR_CPUS=8 > > > > > > -CONFIG_PREEMPT_NONE=y > > > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > > +CONFIG_PREEMPT_NONE=n > > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > > CONFIG_PREEMPT=n > > > > > > -CONFIG_PREEMPT_LAZY=n > > > > > > #CHECK#CONFIG_TREE_RCU=y > > > > > > +#CHECK#CONFIG_PREEMPT_RCU=n > > > > > > CONFIG_HZ_PERIODIC=n > > > > > > CONFIG_NO_HZ_IDLE=y > > > > > > CONFIG_NO_HZ_FULL=n > > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > > > index 420632b030dc4..b2ce37861e71a 100644 > > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TREE10 > > > > > > @@ -6,6 +6,7 @@ CONFIG_PREEMPT_VOLUNTARY=n > > > > > > CONFIG_PREEMPT=n > > > > > > CONFIG_PREEMPT_DYNAMIC=n > > > > > > #CHECK#CONFIG_TREE_RCU=y > > > > > > +CONFIG_PREEMPT_RCU=n > > > > > > CONFIG_HZ_PERIODIC=n > > > > > > CONFIG_NO_HZ_IDLE=y > > > > > > CONFIG_NO_HZ_FULL=n > > > > > > diff --git a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > > > index 5d546efa68e83..696fba9968c60 100644 > > > > > > --- a/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > > > +++ b/tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > > > > > > @@ -1,6 +1,8 @@ > > > > > > CONFIG_SMP=y > > > > > > CONFIG_NR_CPUS=8 > > > > > > -CONFIG_PREEMPT_NONE=y > > > > > > +CONFIG_PREEMPT_DYNAMIC=n > > > > > > +CONFIG_PREEMPT_LAZY=y > > > > > > +CONFIG_PREEMPT_NONE=n > > > > > > CONFIG_PREEMPT_VOLUNTARY=n > > > > > > CONFIG_PREEMPT=n > > > > > > CONFIG_HZ_PERIODIC=n > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/4] rcuscale: Update due to x86 not supporting none/voluntary preemption 2026-03-03 23:58 [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Paul E. McKenney 2026-03-03 23:59 ` [PATCH 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption Paul E. McKenney @ 2026-03-03 23:59 ` Paul E. McKenney 2026-03-03 23:59 ` [PATCH 3/4] refscale: " Paul E. McKenney ` (2 subsequent siblings) 4 siblings, 0 replies; 16+ messages in thread From: Paul E. McKenney @ 2026-03-03 23:59 UTC (permalink / raw) To: rcu; +Cc: linux-kernel, kernel-team, rostedt, Paul E. McKenney 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. This commit therefore switches such rcuscale scenarios to CONFIG_PREEMPT_LAZY. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> --- tools/testing/selftests/rcutorture/configs/rcuscale/TINY | 3 ++- tools/testing/selftests/rcutorture/configs/rcuscale/TRACE01 | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/rcutorture/configs/rcuscale/TINY b/tools/testing/selftests/rcutorture/configs/rcuscale/TINY index 0fa2dc086e10c..c1a7d38823fba 100644 --- a/tools/testing/selftests/rcutorture/configs/rcuscale/TINY +++ b/tools/testing/selftests/rcutorture/configs/rcuscale/TINY @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/rcuscale/TRACE01 b/tools/testing/selftests/rcutorture/configs/rcuscale/TRACE01 index 0059592c7408a..f3f1368b83869 100644 --- a/tools/testing/selftests/rcutorture/configs/rcuscale/TRACE01 +++ b/tools/testing/selftests/rcutorture/configs/rcuscale/TRACE01 @@ -1,5 +1,6 @@ CONFIG_SMP=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n -- 2.40.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 3/4] refscale: Update due to x86 not supporting none/voluntary preemption 2026-03-03 23:58 [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Paul E. McKenney 2026-03-03 23:59 ` [PATCH 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption Paul E. McKenney 2026-03-03 23:59 ` [PATCH 2/4] rcuscale: " Paul E. McKenney @ 2026-03-03 23:59 ` Paul E. McKenney 2026-03-03 23:59 ` [PATCH 4/4] scftorture: " Paul E. McKenney 2026-03-05 21:29 ` [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Boqun Feng 4 siblings, 0 replies; 16+ messages in thread From: Paul E. McKenney @ 2026-03-03 23:59 UTC (permalink / raw) To: rcu; +Cc: linux-kernel, kernel-team, rostedt, Paul E. McKenney 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. This commit therefore switches such refscale scenarios to CONFIG_PREEMPT_LAZY. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> --- tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT | 3 ++- tools/testing/selftests/rcutorture/configs/refscale/TINY | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT b/tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT index 67f9d2998afd3..1f215e17cbae2 100644 --- a/tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT +++ b/tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT @@ -1,5 +1,6 @@ CONFIG_SMP=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n diff --git a/tools/testing/selftests/rcutorture/configs/refscale/TINY b/tools/testing/selftests/rcutorture/configs/refscale/TINY index 759343980b80d..9a11b578ff344 100644 --- a/tools/testing/selftests/rcutorture/configs/refscale/TINY +++ b/tools/testing/selftests/rcutorture/configs/refscale/TINY @@ -1,5 +1,6 @@ CONFIG_SMP=n -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n -- 2.40.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 4/4] scftorture: Update due to x86 not supporting none/voluntary preemption 2026-03-03 23:58 [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Paul E. McKenney ` (2 preceding siblings ...) 2026-03-03 23:59 ` [PATCH 3/4] refscale: " Paul E. McKenney @ 2026-03-03 23:59 ` Paul E. McKenney 2026-03-05 21:29 ` [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Boqun Feng 4 siblings, 0 replies; 16+ messages in thread From: Paul E. McKenney @ 2026-03-03 23:59 UTC (permalink / raw) To: rcu; +Cc: linux-kernel, kernel-team, rostedt, Paul E. McKenney 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. This commit therefore switches such scftorture scenarios to CONFIG_PREEMPT_LAZY. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> --- tools/testing/selftests/rcutorture/configs/scf/NOPREEMPT | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/configs/scf/NOPREEMPT b/tools/testing/selftests/rcutorture/configs/scf/NOPREEMPT index 6133f54ce2a7d..f9621e2770a41 100644 --- a/tools/testing/selftests/rcutorture/configs/scf/NOPREEMPT +++ b/tools/testing/selftests/rcutorture/configs/scf/NOPREEMPT @@ -1,5 +1,6 @@ CONFIG_SMP=y -CONFIG_PREEMPT_NONE=y +CONFIG_PREEMPT_LAZY=y +CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n CONFIG_PREEMPT_DYNAMIC=n -- 2.40.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites 2026-03-03 23:58 [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Paul E. McKenney ` (3 preceding siblings ...) 2026-03-03 23:59 ` [PATCH 4/4] scftorture: " Paul E. McKenney @ 2026-03-05 21:29 ` Boqun Feng 4 siblings, 0 replies; 16+ messages in thread From: Boqun Feng @ 2026-03-05 21:29 UTC (permalink / raw) To: Paul E. McKenney; +Cc: rcu, linux-kernel, kernel-team, rostedt 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(-) > ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2026-03-05 23:24 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-03 23:58 [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Paul E. McKenney 2026-03-03 23:59 ` [PATCH 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption Paul E. McKenney 2026-03-04 17:26 ` [PATCH v2 " Paul E. McKenney 2026-03-05 0:01 ` [PATCH v3 " Paul E. McKenney 2026-03-05 17:53 ` Joel Fernandes 2026-03-05 19:08 ` Paul E. McKenney 2026-03-05 18:22 ` Boqun Feng 2026-03-05 19:06 ` Paul E. McKenney 2026-03-05 19:59 ` Boqun Feng 2026-03-05 20:11 ` Paul E. McKenney 2026-03-05 21:08 ` Boqun Feng 2026-03-05 23:24 ` Paul E. McKenney 2026-03-03 23:59 ` [PATCH 2/4] rcuscale: " Paul E. McKenney 2026-03-03 23:59 ` [PATCH 3/4] refscale: " Paul E. McKenney 2026-03-03 23:59 ` [PATCH 4/4] scftorture: " Paul E. McKenney 2026-03-05 21:29 ` [PATCH 0/4] rcu: Fix lazy-preemption regression in torture-test suites Boqun Feng
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox