[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200904172432.wgxn6x5tpnt4lcln@linux-p48b>
Date: Fri, 4 Sep 2020 10:24:32 -0700
From: Davidlohr Bueso <dave@...olabs.net>
To: "Paul E. McKenney" <paulmck@...nel.org>
Cc: peterz@...radead.org, mingo@...hat.com, will@...nel.org,
linux-kernel@...r.kernel.org
Subject: Re: Question on task_blocks_on_rt_mutex()
On Thu, 03 Sep 2020, Paul E. McKenney wrote:
>commit d93a64389f4d544ded241d0ba30b2586497f5dc0
>Author: Paul E. McKenney <paulmck@...nel.org>
>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@...nel.org>
Reviwed-by: Davidlohr Bueso <dbueso@...e.de>
Powered by blists - more mailing lists