> -----Original Message----- > From: H. Peter Anvin [mailto:hpa@xxxxxxxxx] > Sent: Wednesday, July 24, 2013 11:14 AM > To: KY Srinivasan; Paolo Bonzini; Jason Wang > Cc: tglx@xxxxxxxxxxxxx; mingo@xxxxxxxxxx; x86@xxxxxxxxxx; gleb@xxxxxxxxxx; > kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > Subject: RE: [PATCH 4/4] x86: properly handle kvm emulation of hyperv > > I don't see how this solves the A emulates B, B emulates A problem? As Paolo suggested if there were some priority encoded, the guest could make an informed decision. If the guest under question can run on both hypervisors A and B, we would rather the guest discover hypervisor A when running on A and hypervisor B when running on B. The priority encoding could be as simple as surfacing the native hypervisor signature earlier in the CPUID space. K. Y > > KY Srinivasan <kys@xxxxxxxxxxxxx> wrote: > > > > > >> -----Original Message----- > >> From: Paolo Bonzini [mailto:paolo.bonzini@xxxxxxxxx] On Behalf Of > >Paolo > >> Bonzini > >> Sent: Wednesday, July 24, 2013 3:07 AM > >> To: Jason Wang > >> Cc: H. Peter Anvin; KY Srinivasan; tglx@xxxxxxxxxxxxx; > >mingo@xxxxxxxxxx; > >> x86@xxxxxxxxxx; gleb@xxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linux- > >> kernel@xxxxxxxxxxxxxxx > >> 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. > > ��.n��������+%������w��{.n�����o�^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�