I just realized something that I thought I would share with others. I’ve been trying to configure latency using jack_iodelay and realized that part of my problems with latency and xruns on linux have been due to kernel settings. I tried adding the “nohz=off” boot line and now measured latency is consistent and many fewer xruns. Try it…
Example 1 (dynamic ticks enabled as default kernel):
-Running jack_iodelay the measured latency continues to rise in small amounts as it runs (sorry didn’t copy it). Taking one of the values after running for 10 seconds or so leads to a value that is too high throwing off the latency calcs. for example may be it starts initially around 47ms, but after 15 seconds it might be at 52ms. I also get many more xruns running default config.
Example 2 (dynamic ticks enabled as default kernel):
-Running jack_iodelay the measured latency is consistent. e.g
2108.529 frames 47.812 ms
2108.530 frames 47.812 ms
2108.531 frames 47.812 ms
This is my latest setting and works pretty well today:
/usr/bin/jackd --sync -P85 -dalsa -r44100 -p1024 -n2 -D -Chw:M1010LT -Phw:M1010LT -I30 -O30
I used the following formula for my use (2108.53-(1024*2))/2=~30 [sync mode]
As a side effect, there is noticeably more power consumption with this. Using the default kernel setting, power use at idle is 73 Watts and processor fans run less (very quiet, fan barely runs). Whereas with nohz=off option the idle power is 95 Watts, a few more degrees on the cpus and fan noise is more noticeable.
This is on Fedora 15 x86-64, but it probably applies to others. My guess is that it is motherboard related and or kernel related within the last year or so. Its a homebuilt intel i5 quad. I get poor xrun performance on other distro live cds so I’m not going to blame my trusty Fedora just yet.
Hope this helps someone. Geoff