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

H. Peter Anvin
2013-07-24T16:48:47Z

I don't see how this solves the A emulates B, B emulates A problem?

KY Srinivasan <kys@microsoft.com> wrote:
>
>
>> -----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
>>
>>

--
Sent from my mobile phone. Please excuse brevity and lack of formatting.