[alsa-devel] [RFC] disabling ALSA period interrupts

Jassi Brar jassisinghbrar at gmail.com
Fri May 14 06:07:40 CEST 2010

On Wed, May 12, 2010 at 11:16 PM, Mark Brown
<broonie at opensource.wolfsonmicro.com> wrote:
> On Wed, May 12, 2010 at 08:50:42AM -0500, pl bossart wrote:
>> This might be almost equivalent to the timer approach in terms of # of
>> wakeups, however the timer can be reprogrammed on-the-fly whereas
>> periods can only be changed by closing and reopening the device. You
>> can also adjust the timer shall underflows occur. And the timer slack
>> lets the kernel group events. Not to mention that you will need
> The timer is also useful for allowing PulseAudio to dynamically adjust
> the period size as the runtime situation changes - if you're running
> high latency streams and have a low latency application start up then
> PulseAudio can just change the timer to get more frequent events.

AFAIU, the only issue is lack of ability to fine-tune period size of
DMA runtime.
Otherwise, for the requirement, having period-size almost equal
to ring-buffer serves better than disabling interrupts and using timer
based updating, more so for VMs with inaccurate timer source.

Then I think, rather then providing a way to disable hw-intr, we'd
better provide
a way to modify runtime period-size at DMA Driver level, and
snd_pcm_period_elapsed seems already capable to handle that.
That way, disabled interrupts would just be a special case with
period-size := ULONG_MAX.

More information about the Alsa-devel mailing list