[PlanetCCRMA] Can anybody help me with a latency issue on FC15

Andy Campbell andycampbell.uk at gmail.com
Fri Jul 15 04:39:42 PDT 2011


Hi All

I recently upgraded from FC14/CCRMA to FC15/CCRMA.
[andy at speedy ~]$ uname -a
Linux speedy.local 2.6.38.8-35.fc15.i686 #1 SMP PREEMPT Fri Jul 15
01:20:06 BST 2011 i686 i686 i386 GNU/Linux

Prior to the upgrade, I was able to run jackd + ffado + Focusrite
Saffire 40 using the old firewire stack.  I stuck with the old stack
because I had problems with the new stack a long time ago.  Since
Fedora stopped shipping the old firewire stack some time ago, I have
been building my own firewire modules against the Fedora kernel source
tree.  This all worked well, and I was able to run using a stock
Fedora kernel with the modules I compiled, with no issues.  I am able
to run jackd in realtime mode, and everything worked as expected.

After upgrading to FC15, the kernel no longer includes source for the
old firewire stack, so I moved to the new ("juju") stack.  Since doing
this, my jackd run's for a while, then fails with an error like this
----
JackFFADODriver::ffado_driver_wait - unhandled xrun
firewire ERR: wait status < 0! (= -1)
JackAudioDriver::ProcessAsync: read error, stopping...
----

I've been getting advice from the ffado mailing list about this, and
they suggested many ideas to help understand the problem.

If I use latencytop at the time of a failure, I get this kind of
result (screenshot)
http://dl.dropbox.com/u/3289905/latencytop.png
I believe this is showing me that there was high (>40ms) latency from
a disk operations on my root disk, which caused an XRUN which somehow
crashed the jackd processing thread.

Since this looked like disk latency, I tried setting noatime, and
barriers=0 options on the ext4 mount, but I still get the same
problem.

I figured that a realtime kernel might help.  I tried the CCRMA rt
kernel, however this won't boot on my system.  There seems to be a
conflict between upstart (required for CCRMA RT kernel) and the new
FC15 init system.

I compiled my own kernel with CONFIG_PREEMPT set
[andy at speedy ~]$ [root at speedy ~]# grep PREEMPT
/boot/config-2.6.38.8-35.preempt.fc15.i686
[andy at speedy ~]$ CONFIG_TREE_PREEMPT_RCU=y
[andy at speedy ~]$ CONFIG_PREEMPT_RCU=y
[andy at speedy ~]$ CONFIG_PREEMPT_NOTIFIERS=y
[andy at speedy ~]$ # CONFIG_PREEMPT_NONE is not set
[andy at speedy ~]$ # CONFIG_PREEMPT_VOLUNTARY is not set
[andy at speedy ~]$ CONFIG_PREEMPT=y
[andy at speedy ~]$ CONFIG_DEBUG_PREEMPT=y
[andy at speedy ~]$ # CONFIG_PREEMPT_TRACER is not set
However, I still see the same failures even with preemption.


Does anybody have experience with the new firewire stack on Focusrite
hardware with Fedora 15 or CCRMA?

Can anybody give me any advice on what I should do to investigate this?

Thanks very much in advance!

Andy



More information about the PlanetCCRMA mailing list