When I run jackd as:
sudo jackd --verbose -P 70 -R -d firewire -v10 2> ffado-jack.log
jack crashes after a variable amount of time. I do not need to run any other audio apps. There has been a discussion on ffado-devel (subject "XRUN with VIA 1394 controller") regarding this issue. From Pieter Palmers:
"The message is from the cycle timer update loop which is independent from the iso streams. The loop detects a weird value for the CTR update. The 98304000.000000 is 20 times the expected update period, so the reported difference is way off.
The reason this code is present is since there can be a bus reset that might result in a new bus clock master, but that's not the case here. The most likely cause for this is buggy hardware.
Can you run with verbose level 10?
As a side-note: this should not cause the system to fall apart though. I do suspect that I know what goes wrong: the code that detects whether a handler is still 'alive' uses the cycle timer to figure out if a handler timed out. If there are large jumps in CTR values, there can be false triggering. That should be fixed.
Can you try changing the following line in IsoHandlerManager?.cpp:330
int64_t max_diff_ticks = TICKS_PER_SECOND * 2;
to
int64_t max_diff_ticks = TICKS_PER_SECOND * 128;
This disables the detection of dead handlers."
When I try Pieter's suggestion, jackd still crashes. The latest log is quite large, so I'm attaching it as part of a new ticket, and I'm also creating the ticket because Pieter wishes to find a workaround in software.
Also maybe relevant is when I run ffadomixer (before Pieter's suggestion of disabling dead handler detection), I get these errors on the console I ran ffadomixer from:
87228148108: Error (CycleTimerHelper?.cpp)[ 504] Execute: negative step: -1313681036.784007! (correcting to nominal)
87228348092: Error (CycleTimerHelper?.cpp)[ 504] Execute: negative step: -589657805.406015! (correcting to nominal)
87228548093: Error (CycleTimerHelper?.cpp)[ 504] Execute: negative step: -597906698.733869! (correcting to nominal)
87228748111: Error (CycleTimerHelper?.cpp)[ 504] Execute: negative step: -1909218735.096767! (correcting to nominal)
87228948100: Error (CycleTimerHelper?.cpp)[ 504] Execute: negative step: -1198299552.133742! (correcting to nominal)
After disabling the dead handler detection, I still get these errors. I need to kill the ffado dbus server to stop the errors (i.e. closing ffadomixer alone does not stop the errors).