Re: [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm2-V0.7.30-2

From: Florian Schmidt
Date: Tue Nov 23 2004 - 09:44:36 EST


On Tue, 23 Nov 2004 16:21:26 +0100
Ingo Molnar <mingo@xxxxxxx> wrote:

>
> * Florian Schmidt <mista.tapas@xxxxxxx> wrote:
>
> > ~$ ps -C jack_test -cmL
> > PID LWP CLS PRI TTY TIME CMD
> > 988 - - - pts/1 00:00:00 jack_test
> > - 988 TS 20 - 00:00:00 -
> > - 989 FF 99 - 00:00:00 -
> >
> > So when you ctrl-z out of jack_test you cause its process() thread to
> > be suspended, too, thus jackd cannot finish processing its graph.
>
> so in theory any scheduling delay of PID 988 in the above setup (the
> SCHED_OTHER task) should not be able to negatively influence jackd,
> correct?

correct

> In fact, does in this particular jack_test case PID 988 do
> anything substantial?

Well, it registers the client with jackd, sets up the ports, registers
the process() callback and then simply goes to sleep() for the desired
runtime of the program. All these are non RT ops and should never be
able to cause any xruns.

All the work is done by the process() callback which is called by
libjack in a SCHED_FIFO thread. The process() callback is called once
for each buffer that jackd processes.

I cannot explain the detailed mechanism of how jackd wakes its clients
and communicates with them myself too well, so i'll leave this to Paul
Davis (CC'ed). Care to elaborate, Paul?

flo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/