On Wednesday, 29. March 2006 10:50, Florian Schmidt wrote: > Some jack apps are badly programmed and start up/shut down in a non > realtime safe way. I.e. jack-rack _always_ produces an xrun on > shutdown. Well, this seems to be application dependent. I have not seen any xruns caused by ardour, for instance. On the other hand, rezound causes xruns all the time (usually a few at startup, and then occasionally some when "doing something"). I've also seen xruns when starting/shutting down jamin, rosegarden, muse, jack-rack, xfst... Are all these apps broken?! > > - Installed a realtime kernel (currently 2.6.16.1-rt11) > good, although it might be wise to try different versions. I did. I used various versions of 2.6.12, 2.6.15 and 2.6.16 with the respective realtime patches, same result. > > - Changed filesystems from reiserfs to ext3 (/) and xfs (/home) > might be good. no idea. i never ad trouble with ext3. But besides ext2 > i never tried any other fs's ;) I heard bad things about xfs though. Do > you record to /home? The predominant opinion seems to be that both ext3 and xfs are ok, if I'm not mistaken. But I haven't heard a definite answer to which filesystem is best, yet. I'm recording to /home on xfs, but as most xruns occur during startup/shutdown, this doesn't seem to be the issue, does it? > If you are really willing to hunt these xruns down you can compile > jackd with --enable-preemption-check. You also need to have user > triggered tracing enabled in the -rt kernel for this. > > Now everytime an app does rt unsafe stuff in its callback that causes > the app to lose the cpu to another app, the kernel will send it a > SIGUSR2 and the app will probably terminate due to it ot handling this > signal. > > You will also get a stack trace in the syslog which tells you what > happened in the app and which app it was. Ok, I did that. Doesn't seem to have an effect on most apps though. Rosegarden, rezound and jack_rack all caused xruns, but none of them was terminated, and there's no stack trace either. However I got a stack trace when shutting down jamin: [ 4797.602341] jamin:17931 userspace BUG: scheduling in user-atomic context! [ 4797.602362] [<c01049f5>] show_trace+0x25/0x30 (20) [ 4797.602382] [<c0104a23>] dump_stack+0x23/0x30 (20) [ 4797.602395] [<c02bfa64>] schedule+0x114/0x140 (36) [ 4797.602412] [<c02bfda4>] wait_for_completion+0xa4/0xe0 (48) [ 4797.602426] [<c017bb68>] do_coredump+0x348/0x780 (192) [ 4797.602456] [<c012edf1>] get_signal_to_deliver+0x391/0x510 (60) [ 4797.602473] [<c0102c68>] do_notify_resume+0xb8/0x75c (220) [ 4797.602486] [<c01034fc>] work_notifysig+0x13/0x1b (-8116) [ 4797.602498] --------------------------- [ 4797.602504] | preempt count: 00000000 ] [ 4797.602511] | 0-level deep critical section nesting: [ 4797.602518] ---------------------------------------- What does that mean? Thanks, Dominic