Re: [linus:master] [sched, x86] 476e8583ca: WARNING:at_kernel/rcu/update.c:#torture_sched_setaffinity

From: Oliver Sang
Date: Tue Dec 03 2024 - 01:03:41 EST


hi, Sebastian Andrzej Siewior, hi, Paul,

On Wed, Nov 27, 2024 at 12:17:49AM +0800, Paul E. McKenney wrote:
> On Tue, Nov 26, 2024 at 03:30:24PM +0100, Sebastian Andrzej Siewior wrote:
> > On 2024-11-25 22:29:09 [+0800], kernel test robot wrote:
> > > Hello,
> > Hi,
> >
> > > by this commit, we see the config has below diff:
> > >
> > > --- /pkg/linux/x86_64-randconfig-161-20241120/gcc-12/35772d627b55cc7fb4f33bae57c564a25b3121a9/.config 2024-11-22 17:03:32.458344665 +0800
> > > +++ /pkg/linux/x86_64-randconfig-161-20241120/gcc-12/476e8583ca16eecec0a3a28b6ee7130f4e369389/.config 2024-11-22 17:02:59.440805587 +0800
> > > @@ -121,9 +121,11 @@ CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
> > > # end of BPF subsystem
> > >
> > > CONFIG_PREEMPT_BUILD=y
> > > -CONFIG_PREEMPT_NONE=y
> > > +CONFIG_ARCH_HAS_PREEMPT_LAZY=y
> > > +# CONFIG_PREEMPT_NONE is not set
> > > # CONFIG_PREEMPT_VOLUNTARY is not set
> > > # CONFIG_PREEMPT is not set
> > > +CONFIG_PREEMPT_LAZY=y
> > > # CONFIG_PREEMPT_RT is not set
> > > CONFIG_PREEMPT_COUNT=y
> > > CONFIG_PREEMPTION=y
> > >
> > …
> > > commit: 476e8583ca16eecec0a3a28b6ee7130f4e369389 ("sched, x86: Enable Lazy preemption")
> > …
> > > runtime: 300s
> > > test: cpuhotplug
> > > torture_type: trivial
> > …
> >
> > > [ 150.797530][ T445] ------------[ cut here ]------------
> > > [ 150.797915][ T445] torture_sched_setaffinity: sched_setaffinity(445) returned -22
> > > [ 150.798353][ T445] WARNING: CPU: 0 PID: 445 at kernel/rcu/update.c:535 torture_sched_setaffinity (kernel/rcu/update.c:535 (discriminator 3))
> >
> > I've been staring at this, and this is actually fine. Your config changes
> > from CONFIG_PREEMPT_NONE to CONFIG_PREEMPT_LAZY which implies
> > CONFIG_PREEMPTION. The trivial RCU test there does sched_setaffinity()
> > while preemption is enabled and CPU-hotplug runs in the background. So
> > you get what you expect either by an attempt to move to a CPU which is
> > no longer valid or by getting migrated to another CPU in the middle of
> > your operation.
> >
> > This is all fine. You need to update your config file or your test.
>
> Good point, and I suspect that there will be a few rcutorture scenario
> adjustments coming along shortly after -rc1 comes out.

thanks a lot for information!

we will fix our config and to avoid reporting against this commit.

>
> Thanx, Paul