Re: Question on task_blocks_on_rt_mutex()

From: Paul E. McKenney
Date: Fri Sep 04 2020 - 15:56:31 EST


On Fri, Sep 04, 2020 at 10:24:32AM -0700, Davidlohr Bueso wrote:
> On Thu, 03 Sep 2020, Paul E. McKenney wrote:
>
> > commit d93a64389f4d544ded241d0ba30b2586497f5dc0
> > Author: Paul E. McKenney <paulmck@xxxxxxxxxx>
> > Date: Tue Sep 1 16:58:41 2020 -0700
> >
> > torture: Periodically pause in stutter_wait()
> >
> > Running locktorture scenario LOCK05 results in hangs:
> >
> > tools/testing/selftests/rcutorture/bin/kvm.sh --allcpus --torture lock --duration 3 --configs LOCK05
> >
> > The lock_torture_writer() kthreads set themselves to MAX_NICE while
> > running SCHED_OTHER. Other locktorture kthreads run at default niceness,
> > also SCHED_OTHER. This results in these other locktorture kthreads
> > indefinitely preempting the lock_torture_writer() kthreads. Note that
> > the cond_resched() in the stutter_wait() function's loop is ineffective
> > because this scenario is built with CONFIG_PREEMPT=y.
> >
> > It is not clear that such indefinite preemption is supposed to happen, but
> > in the meantime this commit prevents kthreads running in stutter_wait()
> > from being completely CPU-bound, thus allowing the other threads to get
> > some CPU in a timely fashion. This commit also uses hrtimers to provide
> > very short sleeps to avoid degrading the sudden-on testing that stutter
> > is supposed to provide.
> >
> > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
>
> Reviwed-by: Davidlohr Bueso <dbueso@xxxxxxx>

Applied, thank you!

Thanx, Paul