> From: Martin Pieuchot <[email protected]>
> Date: Mon, 8 Aug 2016 12:17:30 +0200
> 
> On 07/30/16 02:41, Alexander Bluhm wrote:
> > On Fri, Jul 29, 2016 at 08:07:14PM -0400, Ted Unangst wrote:
> >> There's a sched_yield() in taskq_thread(). Something's not quite right.
> > 
> > It is a sched_pause() in taskq_thread().
> > 
> > If I replace my yield() with sched_pause(), the userland hangs
> > during splicing.  Looks like SPCF_SHOULDYIELD is not set.
> 
> Are you sure it is not set?  Or does the scheduler keeps selecting your
> task?

That would indeed be interesting to know.  As far as I can tell it
should be set.

SPCF_SHOULDYIELD only gets set if the process has been hogging the CPU
for more than a single tick (it's set the second time the process goes
trhough roudrobin()).  With a 100 Hz clock that might simply be too
much for smooth interactive behaviour, especially if there is a lot of
other high-priority kernel work to be done.

Reply via email to