Takashi, it would be really, really useful if we could modify the ALSA
drivers to identify at interrupt time when an underrun has occurred and to
drop a stack dump at that point. Would that be possible? Something like:
foo_interrupt()
{
...
if (there is no audio left to play) {
if (sysctl_debug_audio_underruns) {
printk("audio underrun!\n");
dump_stack();
}
}
...
}
The backtrace will tell us what the kernel was doing when it should have
been context switching instead. People can set the sysctl and send angry
emails to kernel developers.
Is this possible?