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