[linux-audio-user] rezound as jack client

Malcolm Baldridge linux-audio at paypc.com
Fri Apr 30 21:27:16 EDT 2004


> Thank you very much for the lecture, I'd want more and more :-) 

I am pleased you enjoyed it.  Most people find my diatribes rather dry reading.

> I'm happy to see, almost all of the mentioned (except for bdflush) 
> settings are more or less optimum.

Excellent.

I have another idea too.  Since in a DAW scenario, it's STUPID to
write-buffer really [you're spooling out lots of data which you're not going
to need again anytime soon], I'd inspect the source to see if they open the
file in O_DIRECT mode.  This removes the buffer cache entirely from the
equation and does not induce memory pressures upon the kernel.  

All "large spooling" I/Os (read or writes) should use O_DIRECT for realtime
operations where the likelihood of re-reading the file is zero.  When you're
EDITING the file, fine.  But when you're capturing, I suspect you will see
more wins if you're using O_DIRECT.  You can get big wins if you use
O_DIRECT and use multiples of the physical memory pagesize. (Zero-copy write
path - super-dee-duper efficient!)

With O_DIRECT you will eliminate the CPU waste (and locking!!) of wasteful
double-buffering, and reduce memory copying.  If you set up the I/Os
properly, you will in fact have a direct-to-disk DMA channel from the audio
buffer.  This is Perfection.

> Let me recall my question: I think, there are more than one (lck1)
> possible kernel patches with the aim of solving lowlat/preempt/...
> issues. Which of them is the most appropriate for using with jack?

All of them, though strictly speaking, the 64-bit jiffies patch does not
boost performance.

> I still use 2.4.26.

Sounds fine.

I'm assuming you're using the patches at:
<http://www.plumlocosoft.com/kernel/> (Con Kolivas's patches now maintained
by E Hustvedt).

Apply all of the patches, and enable lowlatency.  I use all of them except
for 012-rl2dt.diff.bz2 on my main servers [non-audio/realtime oriented] to
excellent effect.

If you're really hardcore, you can live without 64-bit jiffies, however when
HZ=1000 you'll wrap your jiffy counter in under 40 days.

I think HZ=1000 will get you some gains in responsiveness for applications
which do ANY select() multiplexing.  Ignore the rants about "wastes due to
more interrupts" - that's under 1% on modern CPUs.  The AXP (Alpha) platform
has been using HZ=1000 for years, and even a $50 Athlon XP 2000 leaves that
for dead.  On pre-Pentia CPUs, there's a reasonable argument to be made for
HZ=100.

Lord Sauron could have won, if only he had Quality,

=MB=
-- 
A focus on Quality.




More information about the Linux-audio-user mailing list