[alsa-devel] Driver recovers from underrun in plain ALSA mode, but not in OSS emulation

Timur Tabi timur at freescale.com
Sat Mar 1 00:56:43 CET 2008

I'm stress-testing my sound driver using mplayer to see how it handles underrun
during jumps in CPU loads.  That is, I start playing a movie, and then I cause
the CPU to jump to 100%, and then I drop the CPU back to normal.  During the
times when the CPU is at 100%, I get underruns and other problems.  That's normal.

When I tell mplayer to use the ALSA API, my driver recovers nicely from an
underrun situation when the CPU load drops back to normal.  However, if I tell
mplayer to use the OSS API (i.e. ALSA's OSS emulation), it does not recover from
an underrun situation.  The audio and video playback remains distorted.  I need
to tell mplayer to pause and resume to get it to recover.

Is this normal for ALSA drivers?  Before I try to debug this problem the hard
way, I want to know if this could be the result of a common programming mistake
in my driver or something like similar.

(FYI, the source code for my driver is in sound/soc/fsl/)

Timur Tabi
Linux kernel developer at Freescale

More information about the Alsa-devel mailing list