I have made a program which is to be run on a dedicated computer, equipped only with a multichannel soundcard (hammerfall), a small LCD and a remote control. This forms a dedicated surround processor (if interested in the software, look at http://www.ludd.luth.se/users/torger/almusvcu.html) for use in multichannel HiFi systems.
In some configurations, a 64 sample processing block is relevant, leaving a total IO-delay of 128 samples, which in 44.1 kHz is about 3 ms. With such a configuration, I have got the system going for a few hours at most before underflow. Of course the relevant processes are realtime scheduled, I have even used tricks with sched_yield to get the processes yield in the right order (I will probably have to pay for that sooner or later though) for the most safe operation. So, my question to this list is if someone has run a similar system for days without underflows, and if there is some guide or tips on how to put together the for the moment best low-latency kernel, if there are kernel features that should be avoided, some bad driver or filesystem perhaps, and if there are some hardware setting tricks (apart from giving the sound card the highest interrupt priority). Perhaps tips on which user space processes that should not run (I have no syslogd or cron, but sshd is running) Is it even possible today to build an embedded system with 1.5 ms processing block based on Linux, which runs until hardware or power failure? Oh, my software does not necessarily need to access any filesystem while it is processing, although it would be good if it could (to continuously save volume settings and similar if changed through the remote control). So it can be seen as a strict soundcard-to-the-cpu-and-back problem. /Anders Torger
