Re: [PATCH 1/2] rcu: Assign higher priority to RCU threads if its rcutorture

From: Joel Fernandes
Date: Tue Jun 19 2018 - 18:19:25 EST


On Tue, Jun 19, 2018 at 09:00:24AM -0700, Paul E. McKenney wrote:
> On Mon, Jun 18, 2018 at 11:34:21PM -0700, Joel Fernandes wrote:
> > On Mon, Jun 18, 2018 at 11:22:14PM -0700, Joel Fernandes wrote:
> > > From: "Joel Fernandes (Google)" <joel@xxxxxxxxxxxxxxxxx>
> > >
> > > rcutorture boost tests fail even with CONFIG_RCU_BOOST set because
> > > rcutorture's threads are equal priority to the default RCU kthreads (RT
> > > class with priority of 1).
> >
> > Sorry for the weird subject line, I meant "rcu: Assign higher prio if
> > rcutorture is built into kernel". I have included the patch with the subject
> > line fixed up below (if you prefer to take that instead).
> >
> > Also one question, incase rcutorture is a module, we can't raise the priority
> > of the kthreads because it would be too late to do at module load time. In
> > this case, do you have any ideas on what we can do? I was thinking we can
> > access the kernel command line from within rcutorture module and check if
> > 'rcutree.kthread_prio' was passed. And if it is and isn't sufficiently high,
> > then we avoid testing boost feature at all (and print a nice message telling
> > the user about the issue).
>
> I do like the idea of checking and printing the message in this case.

Cool, I used this approach in the series I just sent. I agree its good to
report it.

> Another alternative would be to allow rcutree.kthread_prio to be changed
> at runtime. But one caution: rcutree.kthread_prio applies to a number
> of kthreads, not just the boost kthreads, so this approach might have
> some unwelcome side-effects.

Yes, I was trying to avoid those complexities just because of rcutorture.

> > OTOH, we can just let rcutorture module loaders fail the test if you feel
> > very few automation tests do the module loading way of rcutorture and so a
> > boost test failure there is tolerable. For me, I will likely be running
> > rcutorture only as a built-in so I am Ok with not special casing it within
> > rcutorture.
>
> I don't know of anyone using the module-loading approach. Probably
> someone somewhere does it from time to time, though.

Oh Ok :). Then I guess the warning print from rcutorture is sufficient as I did.

thanks!

- Joel