RE: [PATCH 4/4] x86: properly handle kvm emulation of hyperv

KY Srinivasan
2013-07-24T14:04:31Z

> -----Original Message-----
> From: Paolo Bonzini [mailto:paolo.bonzini@gmail.com] On Behalf Of Paolo
> Bonzini
> Sent: Wednesday, July 24, 2013 3:07 AM
> To: Jason Wang
> Cc: H. Peter Anvin; KY Srinivasan; tglx@linutronix.de; mingo@redhat.com;
> x86@kernel.org; gleb@redhat.com; kvm@vger.kernel.org; linux-
> kernel@vger.kernel.org
> Subject: Re: [PATCH 4/4] x86: properly handle kvm emulation of hyperv
>
> Il 24/07/2013 08:54, Jason Wang ha scritto:
> > On 07/24/2013 12:48 PM, H. Peter Anvin wrote:
> >> On 07/23/2013 09:37 PM, Jason Wang wrote:
> >>> On 07/23/2013 10:48 PM, H. Peter Anvin wrote:
> >>>> On 07/23/2013 06:55 AM, KY Srinivasan wrote:
> >>>>> This strategy of hypervisor detection based on some detection order
> IMHO is not
> >>>>> a robust detection strategy. The current scheme works since the only
> hypervisor emulated
> >>>>> (by other hypervisors happens to be Hyper-V). What if this were to
> change.
> >>>>>
> >>>> One strategy would be to pick the *last* one in the CPUID list, since
> >>>> the ones before it are logically the one(s) being emulated...
> >>>>
> >>>> -hpa
> >>>>
> >>> How about simply does a reverse loop from 0x40010000 to 0x40010000?
> >>>
> >> Not all systems like being poked too far into hyperspace. Just remember
> >> the last match and walk the list.
> >>
> >> -hpa
> >>
> >
> > Ok, but it raises a question - how to know it was the 'last' match
> > without knowing all signatures of other hyper-visor?
>
> You can return a "priority" value from the .detect function. The
> priority value can simply be the CPUID leaf where the signature was
> found (or a low value such as 1 if detection was done with DMI).
>
> Then you can pick the hypervisor with the highest priority instead of
> hard-coding the order.

I like this idea; this allows some guest level control that is what we want
when we have hypervisors emulating each other.

Regards,

K. Y
>
> Paolo
>
>