Re: [linux-audio-dev] LAAGA - main components

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

Subject: Re: [linux-audio-dev] LAAGA - main components
From: Paul Davis (pbd_AT_Op.Net)
Date: Mon Apr 30 2001 - 18:27:24 EEST


>- if we need for some reasons to use poll(2) or select(2) between
>components of the full system, we have to use something useable with
>poll/select (by example AF_LOCAL sockets).

thats the whole point. you can't have multiple process communicating
via OS objects if you want low latency (reliably). the components in
the system must be in the same process.

if you don't agree with me, then i would like to see a working example
of this design with a 1.3msec deadline for audio processing.

you are going to flush the TLB cache (or its equivalent) every time
you switch components (processes), and then face cache misses during
the initial execution of the current process; you will never reliably
meet the 1.3ms deadline. most hardware can't do that (for now, anyway).
i seem to recall hearing that the alpha might be better in some
ways related to the TLB, but I don't remember how.

the entire audio processing part of the system has to effectively run
in interrupt context; since this is Unix, we don't do that literally,
but we do the next best thing: we use an RT_FIFO thread on a low
latency system, which poll(2)'s the relevant file descriptor(s). it
will run within 0.25msec of the interrupt about 99.5% of the time (or
better).

i imagine that if you used a context switch, you could probably
connect a couple of processes together and still meet the
deadline. any more than that, and its not going to work reliably.

>The thing that worries me more on all these discussion on LAD is that
>you seem to focus on details, instead of design guide lines.

thats because the devil (as well as god) is in the details.

>What I want to say is that if the design proves to be correct the
>details will be solved easy.

maybe you should tell linus that. are the "details" of the kernel easy?

also, real time low latency stuff is never easy, even with the correct
design. doing it under linux, where the design is adequate but not
correct, is just a little harder.

--p


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

This archive was generated by hypermail 2b28 : Mon Apr 30 2001 - 19:01:41 EEST