xruns
Quoted 5 lines · Steve Harris
Quoted 3 lines · Lee Revell
I have not found a good solution to this issue. It's possibe that this is an ALSA bug, though Steve Harris says this xrun is inevitable. I am not sure I understand why.
It looks like this one is actually real, because when I use the preempt-timing patch it corresponds to a report of a 10ms non-preemptible section. get_user_pages appears to be the offender.
jackd does not print an xrun report here due to this code in alsa-driver.c:
/* Delay (in process calls) before jackd will report an xrun */ #define XRUN_REPORT_DELAY 64
...
if (snd_pcm_status_get_state(status) == SND_PCM_STATE_XRUN
&& driver->process_count > XRUN_REPORT_DELAY) { ... print xrun errmsg ...
}
Presumably the author thought this behavior was by design.
(jackd/6566): 10952us non-preemptible critical section violated 1000 us preempt threshold starting at kmap_atomic+0x10/0x60 and ending at kunmap_atomic+0x8/0x20
[<c0106717>] dump_stack+0x17/0x20 [<c0113eec>] dec_preempt_count+0x3c/0x50 [<c0111ce8>] kunmap_atomic+0x8/0x20 [<c013e2cb>] do_anonymous_page+0x8b/0x190 [<c013e41e>] do_no_page+0x4e/0x310 [<c013e8a1>] handle_mm_fault+0xc1/0x170 [<c013d280>] get_user_pages+0x110/0x380 [<c013e9f8>] make_pages_present+0x68/0x90 [<c0140196>] do_mmap_pgoff+0x3e6/0x620 [<c010b656>] sys_mmap2+0x76/0xb0 [<c01060b7>] syscall_call+0x7/0xb
Lee