[linux-audio-dev] another kernel patch?

Jack O'Quin joq at io.com
Sun Nov 30 02:19:36 UTC 2003


Roger Larsson <roger.larsson at norran.net> writes:

> If next client is a RT process (SCHED_FIFO/RR) then it WILL be selected
> unless there is another RT process with higher priority, and lower than jackd
> otherwice it would have been running in the first place.

I wish this were the true.  But, I strongly suspect that it is not.

> > however, for some bizarre reason, the scheduler does not in fact run the
> > next client, but does something else instead.
> 
> If this ever happens (and something else is not within in the priority range
> new process ... jackd) then it is a scheduler BUG - and should be fixed!

That's right.  But, Paul and I have been working closely with this and
don't have much faith in the correctness of the 2.4 scheduler.  Like
all non-trivial software components it has bugs, and getting them
fixed is difficult, if not impossible.

> With the current scheme (OK, I am not quite up to date)
> you could write to the FIFOs of all ready processes before starting to
> wait on the baton. [giving the sub processes different priority levels
> will order them in case you have less processors than CPUs]

The current JACK implementation is completely single-threaded
regardless of how many real or virtual processors your system
possesses.

But, for some (relatively complex) graphs a multithread schedule would
be possible and desirable.  So, theoretically your point is valid.

> Maybe jack should handle the priorities for jack clients - priorities is a
> relative issue anyway... Then jackd could use this scheme when there
> is only one client to run - and the lower priority clients when there are 
> several.

What problem does this solve?
-- 
  joq



More information about the Linux-audio-dev mailing list