Re: [lkp-robot] [rcutorture] 46e26223e3: WARNING:at_kernel/rcu/rcutorture.c:#rcu_torture_stats_print

From: Joel Fernandes
Date: Mon Jun 18 2018 - 18:26:54 EST


On Mon, Jun 18, 2018 at 09:56:46AM -0700, Paul E. McKenney wrote:
> > The reason for the rcutorture test failure could be that the default
> > kthread_prio for the system's RCU threads is set to 1 (unless overridden by
> > rcutree.kthread_prio) which is also equal to the priority of the rcutorture's
> > boost threads. Due to this the rcutorture test could starve the RCU threads
> > as well and defeat the boosting mechanism. I was able to solve a similar
> > issue by just passing rcutree.kthread_prio of 50 on the kernel command line.
> >
> > Paul, would it be ok if we changed the default kthread_prio to something > 1
> > so that rcutorture can test properly without needing to pass any extra
> > rcutree.* parameters?
> >
> > so something like this in kernel/rcu/tree.c ?
> >
> > static int kthread_prio = IS_ENABLED(CONFIG_RCU_BOOST) ? 2 : 0;
>
> Would it be possible to also condition this on rcutorture being built
> in? Or are they doing modprobes for rcutorture?

They seem to be doing built-in rcutorture tests. But I believe the same
problem would occur even if you used modules? I believe the fact that
rcutorture is a module or built-in wouldn't matter to the underlying issue
which is the RCU subsystems's threads are at too low of a priority
(rcutree.kthread_prio = 1).

If you agree with changing the default priority, I have included a patch
below for rcu/dev.

thanks,

- Joel

---8<-----------------------