[alsa-devel] Questions regarding workaround for VMware

Bankim Bhavsar bankim.bhavsar at gmail.com
Sun Sep 13 20:17:08 CEST 2009

On Fri, Aug 28, 2009 at 12:51 PM, Takashi Iwai <tiwai at suse.de> wrote:
> At Fri, 28 Aug 2009 11:29:52 -0700,
> Bankim Bhavsar wrote:
>> Takashi I came across a workaround for VMware in ALSA kernel code
>> In the comments you mention about inaccurate timer source.
>> Could you elaborate on the problem?
> The problem is that the irq timing emulated on vmware isn't always
> accurate.  The sound hardware is supposed to issue an irq at the
> programmed buffer period.  On VMware, this irq generation seems to be
> done based on the system timer (or alike), thus it's not generated
> at the accurate timing that the hardware should give.
> The driver has no idea whether it's on VM, thus assumed that the
> IRQ must come accurately more or less.  In the recent code, there are
> some additions to correct the DMA position more to believe the accuracy
> of the IRQ than the position calculated from the hardware register.
> This caused a regression on VMware.  My patch fixed that, at least,
> for VMware in the stance of previous versions.

Thanks for the explanation, Takashi. Sorry for the delayed response.

I tested with the fix for VMware with 2.6.31rc9 kernel. Sound playback
suffers from underruns and app terminates prematurely.
I've attached the output of "aplay sample.wav -vvv".

I compiled kernel with following config options turned on

and set /proc/asound/card0/pcm0p/xrun_debug to 1.

I can't seem to find  ALSA xrun_debug log messages with dmesg. Am I
looking in the wrong place?

As far as the timing of sound IRQ goes, with our emulation of ENS1371
delay in firing interrupt ranges from 50-500 usecs. Is that large
enough to cause xruns with
recent changes?

Linux guests with kernel version 2.6.31+ running under VMware are
affected currently.

Let me know if you need more information.

>> Is there something specific you would like us to fix in our virtual
>> sound device or timer source?
> Well, the only question is how can we get the programmed sound IRQ
> more accurately...  If hrtimer with the fine timer source is available,
> this could be emulated well, I guess.

I'll consult our timer experts in VMware and get back to you on this question.

-- Bankim.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ALSAUnderrun.log
Type: text/x-log
Size: 4596 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20090913/63ca236c/attachment.log 

More information about the Alsa-devel mailing list