diagnostic tools to trace the reason xruns are happening?

Takashi Sakamoto o-takashi at sakamocchi.jp
Mon Jun 6 02:16:42 UTC 2011


I use Echo Audiofire Pre 8 and worried about JACK's rondom XRUN. 
Fortunately I have a friend who is Linux-based system engineer and ask 
him this issue. Then he gave me two solutions.

1. see IRQ in /proc/interrupts
2. use HPET as system clock source

IRQ have a various meanings but in this case it means device 
input/output. you can see IRQ with the command 'cat /proc/interrupts'. 
Example below,

$ cat /proc/interrupts;
            CPU0       CPU1       CPU2       CPU3
   0:    6206090          0          0          0   IO-APIC-edge      timer
   1:          2          0          0          0   IO-APIC-edge      i8042
   8:          1          0          0          0   IO-APIC-edge      rtc0
   9:          0          0          0          0   IO-APIC-fasteoi   acpi
  12:          4          0          0          0   IO-APIC-edge      i8042
  16:      95779          0          0          0   IO-APIC-fasteoi 
uhci_hcd:usb3, pata_jmicron, nvidia
  17:          0          0          0          0   IO-APIC-fasteoi   ahci
  18:         21         74          0          0   IO-APIC-fasteoi 
ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8, pata_jmicron, firewire_ohci
  19:          0          0          0          0   IO-APIC-fasteoi 
uhci_hcd:usb7, ahci
  21:         36          0          0          0   IO-APIC-fasteoi 
  23:         26          0          0          0   IO-APIC-fasteoi 
ehci_hcd:usb2, uhci_hcd:usb6

Your firewire device is driven by firewire_ohci and you can see how many 
interrupts happen in the layer including firewire_ohci. In this example, 
you can see uhci_hcd:usb5 or uhci_hcd:usb8 in the same layer. If I 
connect my USB mouse or keyboard to uhci_hcd:usb5 or uhci_hcd:usb8, the 
interrupt from Firewire device happens every time I use USB devices. I 
guess this causes FFADO XRUNs.

So in this case you can change the port of USB devices looking 
/proc/interrupts and seek the port disrelated to firewire_ohci.

I seldom get FFADO's XRUN with HPET clock source but I have no idea of 
technical differences of TSC and HPET...You can change the clocksource 
in your kernel option.


Takashi Sakamoto
o-takashi at sakamocchi.jp

(2011年06月05日 17:24), bart deruyter wrote:
> Hi all,
> since recently I'm experiencing more xruns in ubuntustudio 11.04, more
> specifically using the lowlatency kernel. My audiocard is an external
> one, firewire, and I use the firewire driver. They just started
> happening out of the blue, without changing anything significantly.
> These xruns happen randomly, not caused by anything I do on the desktop.
> When I keep qjackctl running without any audio apps open, now and then,
> about each half hour, or 20 minutes, there is an xrun.
> My limits.conf file seems to be as described on the wiki's over the web,
> I have 4 GB or ram, a duocore processor.. I see no reason for problems.
> I've got a latency of 17.4 msec, with a setting of 256 Frames/Perios,
> Sample Rate of 44100, and 3 Periods/Buffer. So far this was the most
> stable setup, though I'm sure I should be able to go to 128
> Frames/Period with my AudioFire12. But I can't, more xruns happen when
> using this setting. Setting the samplerate higher I get more xruns too.
> I'd love to record on 96000, or even 192000, which is possible with the
> audiocard, but the computer system prevents this because of these xruns.
> This does make it unreliable for recording, which I want to do more
> regularly and it makes me impossible to do recordings for others. I do
> not want a system where I have to ask people to start playing again for
> the recording because xruns.
> So, I was wondering, are there diagnostic tools, test scrips, tracing
> tools to get me to the bottom of this?
> Grtz,
> Bart
> http://www.bartart3d.be/

More information about the Ubuntu-Studio-users mailing list