Re: [linux-audio-dev] Help on threads needed

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Help on threads needed
From: Dave Griffiths (dave_AT_pawfal.org)
Date: Mon Nov 04 2002 - 19:27:20 EET


> in the SCHED_OTHER class, its not possible to override the "fair
> scheduling" characteristics of the kernel scheduler. you can
> certainly use nice to adjust the relative priorities of the threads
> (well, actually, sched_setparam()) and this will alter the way the threads
> are scheduled. but the scheduler takes elapsed cycles into account,
> and sooner or later may choose to run a thread will lower priority
> than another runnable thread just because the latter one has been
> hogging CPU cycles. there is no way around this theoretical
> possibility, because its an intentional design. its also why SCHED_RR
> and SCHED_FIFO exist, because these scheduling classes are not
> covered by that rule. if a SCHED_FIFO thread can run, and there are
> no SCHED_FIFO threads ready to run with higher priority, then that thread
> runs, regardless of whether it uses 99% or 1% of available CPU time.
>
> try "man sched_setscheduler" for a decent overview of this.

aha, that is exactly the man page I needed, but failed to find.

> >2. What is the correct setup for SHED_FIFO? What priorities should I run the
> >audio and GUI threads at, and should the GUI thread use SHED_FIFO too?
>
> the audio thread should run at (at most) (sched_get_priority_max() -
> 1) to allow for any watchdog system to run. it may be wise to add a
> watchdog thread that runs at sched_get_priority_max() and wakes up
> every 5 seconds or so to check that progress is still being made.
> JACK includes such a thread, for example. this prevents endless
> loops in a SCHED_FIFO code from taking complete control of a single CPU
> system. it would be nice if there was a way to do this outside the
> application (i.e. a system wide check), but i don't see anyway to do
> this.

I think I'll do this, it will speed up the development to quite a degree :)
 
> IMHO, the GUI thread should not run SCHED_FIFO - nothing is really
> served by this.

Ok, thats what I thought. Its just that I'm getting strange behaviour when
running SHED_FIFO, and wondered if it was due to the GUI thread never being
run. Probably more to do with the fact I was trying random priorities...

Many thanks,

dave


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Mon Nov 04 2002 - 19:36:14 EET