What I'm suggesting is exactly that except that the native hypervisor is later in CPUID space.
KY Srinivasan <k...@microsoft.com> wrote: > > >> -----Original Message----- >> From: H. Peter Anvin [mailto:h...@zytor.com] >> Sent: Wednesday, July 24, 2013 11:14 AM >> To: KY Srinivasan; Paolo Bonzini; Jason Wang >> Cc: t...@linutronix.de; mi...@redhat.com; x...@kernel.org; >g...@redhat.com; >> k...@vger.kernel.org; linux-kernel@vger.kernel.org >> 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 <k...@microsoft.com> wrote: >> > >> > >> >> -----Original Message----- >> >> From: Paolo Bonzini [mailto:paolo.bonz...@gmail.com] On Behalf Of >> >Paolo >> >> Bonzini >> >> Sent: Wednesday, July 24, 2013 3:07 AM >> >> To: Jason Wang >> >> Cc: H. Peter Anvin; KY Srinivasan; t...@linutronix.de; >> >mi...@redhat.com; >> >> x...@kernel.org; g...@redhat.com; k...@vger.kernel.org; linux- >> >> ker...@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. >> >> -- Sent from my mobile phone. Please excuse brevity and lack of formatting. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/