From: Boqun Feng <boqun@kernel.org>
To: "Paul E. McKenney" <paulmck@kernel.org>
Cc: rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel-team@meta.com, rostedt@goodmis.org
Subject: Re: [PATCH v3 1/4] rcutorture: Update due to x86 not supporting none/voluntary preemption
Date: Thu, 5 Mar 2026 10:22:35 -0800 [thread overview]
Message-ID: <aanJ65E2VSJd8ZAl@tardis.local> (raw)
In-Reply-To: <bfe89f6c-3b63-40c6-aa6d-5f523e3e9a31@paulmck-laptop>
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
>
next prev parent reply other threads:[~2026-03-05 18:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aanJ65E2VSJd8ZAl@tardis.local \
--to=boqun@kernel.org \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@kernel.org \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.