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
> > > >
> >