Skip to contentSkip to conversation

xruns

Jackit-devel Lee Revell 1 participant 1 message Aug 8, 2004 3 messages not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): 1091916076.894.23.camel@mindpipe

A message that is not in the archive (sent off-list or not yet received): [email protected]

Lee Revell

author
#3 lore raw
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