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 <[email protected]> > > --- > > 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 >

