[RFC] disabling ALSA period interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Howdy,
When PulseAudio is used and all PCM is routed through PulseAudio
(Fedora, Meego, etc), the notion of ALSA periods isn't very useful.
PulseAudio uses a timer to refill buffers and the period interrupts
are not used at all.

So why not disable them entirely to reduce the number of wakeups? This
is possible with a number of existing DMA controllers. The simple
patch attached shows a proof-of-concept on HDAudio, it's been working
for 5 hours on my Fedora12 laptop without any glitches and powertop
does show _zero_ wakeups from the HDAudio controller (except on
startup). I am told by my colleagues working in Windows environments
that this is what's done on Vista/Windows7 btw. This isn't to say
Windows is great but that artificial generation of not-needed
interrupts is avoidable.

There are probably some cases where you don't want this type of
behavior (broken hardware, legacy code with multiple-buffering,
disabled timer in PulseAudio), so I think it would make sense to
request the disabling of interrupts when hw_params are set, since this
is also the time when period sizes are set. I am aware that some
changes would be needed in pcm_lib.c, where all the error checks are
done. Takashi, Jaroslav, Lennart, what do you think?
Feedback and suggestions welcome.
Cheers
- Pierre

Attachment: 0001-hda-remove-HDA-interrupts-when-buffer-is-processed.patch
Description: Binary data

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux