I've been seeing strange xruns and tracked it down... It comes from something that occurs (and it's not in jackd or kernel as jackd w/ dummy is fine) -- need jackd w/ libffado and a loopback mode to see if it's in the core streaming interface code or in the hardware driver side (fireworks, freebob, motu, etc.)
The problem is xruns (one or two created in a short period) when the free system memory (which is used for disk caching) is completely used up in caching ardour writing to disk... understand the SYSTEM is not out of memory.. it's just the disk cache is releasing old disk cache and replace it with more recent disk I/O activity...
I think the problem can be hunted down easier with a dummy loopback "driver" that simply loops anything out back to in (like dummy in jackd).
The problem does seem to pop up on on of my machine with a single core and only on the other machine with a dual core.. so I suspect it might be something like BKL (Big Kernel Lock) which effect SMP systems. I **COULD** make a single core only kernel and run on this machine (using only one core) and see if all is good THAT way (as-well).
But in any case -- this is weird... I also need to figure out a way to limit disk caching to less than all un-used system memory ... perhaps write a program that allocates memory.
(understand I have gone and tested with BOTH swap memory enabled and disabled)
This is a See ticket #179 as this is what I've found after testing same jackd svn, same ffado svn and same ardour2 ... only difference is kernel / cpu / memory / hardware ... and the machine with XRUNS is superior in my opinion. (more memory, faster, dual core, etc.)