Re: [PATCH v5 untested] kvm: better MWAIT emulation for guests

From: Michael S. Tsirkin
Date: Wed Mar 22 2017 - 10:15:58 EST


On Wed, Mar 22, 2017 at 10:10:05AM -0400, Gabriel L. Somlo wrote:
> On Wed, Mar 22, 2017 at 03:35:18PM +0200, Michael S. Tsirkin wrote:
> > On Tue, Mar 21, 2017 at 05:02:25PM -0700, Nadav Amit wrote:
> > >
> > > > On Mar 21, 2017, at 3:51 PM, Gabriel Somlo <gsomlo@xxxxxxxxx> wrote:
> > > >
> > > > And I get the exact same results on the MacBookAir4,2 (which exhibits
> > > > no freezing or extreme sluggishness when running OS X 10.7 smp with
> > > > Michael's KVM MWAIT-in-L1 patch)...
> > >
> > > Sorry for my confusion. I didnât read the entire thread and thought that
> > > the problem is spurious wake-ups.
> > >
> > > Since that is not the case, I would just suggest two things that you can
> > > freely ignore:
> > >
> > > 1. According to the SDM, when an interrupt is delivered, the interrupt
> > > is only delivered on the following instruction, so you may consider
> > > skipping the MWAIT first.
> > >
> > > 2. Perhaps the CPU changes for some reason GUEST_ACTIVITY_STATE (which
> > > is not according to the SDM).
> > >
> > > That is it. No more BS from me.
> > >
> > > Nadav
> >
> > Intersting. I found this errata:
> > A REP STOS/MOVS to a MONITOR/MWAIT Address Range May Prevent Triggering of
> > the Monitoring Hardware
>
> Any way to tell if they mean that for L0, or L>=1, or all of them?
>
> > Could the macbook CPU be affected?
>
> I ran a grep on the log file I collected when disassembling
> AppleIntelCPUPowerManagement.kext (where the MWAIT-based idle
> thread lives) a few days ago, and didn't find any "rep stos" or
> "rep movs" instances.
>

Right but that would be on the waking side, not the one
that does mwait.

--
MST