[alsa-devel] Questions regarding workaround for VMware

Takashi Iwai tiwai at suse.de
Tue Sep 15 13:00:00 CEST 2009

At Sun, 13 Sep 2009 11:17:08 -0700,
Bankim Bhavsar wrote:
> 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?

It should be fine.  AFAIK, the problem was reported only by one
guy, and maybe it's a kernel config issue, e.g. low HZ and/or no
preempt.  I can't find where the data pointer is now.  Will report you
back if I find from my archive.

> 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.

That'll be great.



More information about the Alsa-devel mailing list