From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50424) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TG8Vb-0008Ii-J7 for qemu-devel@nongnu.org; Mon, 24 Sep 2012 09:15:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TG8VR-00051n-RJ for qemu-devel@nongnu.org; Mon, 24 Sep 2012 09:15:35 -0400 Received: from hub021-nj-7.exch021.serverdata.net ([206.225.164.223]:44045) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TG8VR-00050R-Ms for qemu-devel@nongnu.org; Mon, 24 Sep 2012 09:15:25 -0400 Message-ID: <50605CEB.3050603@CloudSwitch.Com> Date: Mon, 24 Sep 2012 09:15:23 -0400 From: Don Slutz MIME-Version: 1.0 References: <1348272809-27742-1-git-send-email-Don@CloudSwitch.com> In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 00/17] Allow changing of Hypervisor CPUIDs. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: peter.maydell@linaro.org, ehabkost@redhat.com, kvm@vger.kernel.org, mtosatti@redhat.com, qemu-devel@nongnu.org, avi@redhat.com, anthony@codemonkey.ws, imammedo@redhat.com, afaerber@suse.de On 09/22/12 09:18, Blue Swirl wrote: > On Sat, Sep 22, 2012 at 12:13 AM, Don Slutz wrote: >> Also known as Paravirtualization CPUIDs. >> >> This is primarily done so that the guest will think it is running >> under vmware when hypervisor-vendor=vmware is specified as a >> property of a cpu. > Please use checkpatch.pl to check for missing braces etc. I have been. Somehow missed the warnings on the posted patches. v6 in the works. >> >> This depends on: >> >> http://lists.gnu.org/archive/html/qemu-devel/2012-09/msg01400.html >> >> As far as I know it is #4. It depends on (1) and (2) and (3). >> >> This change is based on: >> >> Microsoft Hypervisor CPUID Leaves: >> http://msdn.microsoft.com/en-us/library/windows/hardware/ff542428%28v=vs.85%29.aspx >> >> Linux kernel change starts with: >> http://fixunix.com/kernel/538707-use-cpuid-communicate-hypervisor.html >> Also: >> http://lkml.indiana.edu/hypermail/linux/kernel/1205.0/00100.html >> >> VMware documention on CPUIDs (Mechanisms to determine if software is >> running in a VMware virtual machine): >> http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458 >> >> Changes from v4 to v5: >> Undo kvm_clock2 change. >> Add cpuid_hv_level_set; cpuid_hv_level == 0 is now valid. >> Add cpuid_hv_vendor_set; the null string is now valid. >> Handle kvm and cpuid_hv_level == 0. >> hypervisor-vendor=kvm,hypervisor-level=0 and hypervisor-level=0,hypervisor-vendor=kvm >> now do the same thing. >> >> Changes from v3 to v4: >> Added CPUID_HV_LEVEL_HYPERV, CPUID_HV_LEVEL_KVM. >> Added CPUID_HV_VENDOR_HYPERV. >> Added hyperv as known hypservisor-vendor. >> Allow hypervisor-level to be 0. >> >> Changes from v2 to v3: >> Clean post to qemu-devel. >> >> Changes from v1 to v2: >> >> 1) Added 1/4 from http://lists.gnu.org/archive/html/qemu-devel/2012-08/msg05153.html >> >> Because Fred is changing jobs and so will not be pushing to get >> this in. It needed to be rebased, And I needed it to complete the >> testing of this change. >> >> 2) Added 2/4 because of the re-work I needed a way to clear all KVM bits, >> >> 3) The rework of v1. Make it fit into the object model re-work of cpu.c for x86. >> >> 4) Added 3/4 -- The split out of the code that is not needed for accel=kvm. >> >> Changes from v2 to v3: >> >> Marcelo Tosatti: >> Its one big patch, better split in logically correlated patches >> (with better changelog). This would help reviewers. >> >> So split 3 and 4 into 3 to 17. More info in change log. >> No code change. >> >> Don Slutz (17): >> target-i386: Allow tsc-frequency to be larger then 2.147G >> target-i386: Add missing kvm bits. >> target-i386: Add Hypervisor level. >> target-i386: Add cpu object access routines for Hypervisor level. >> target-i386: Add cpu object access routines for Hypervisor level. >> target-i386: Use Hypervisor level in -machine pc,accel=kvm. >> target-i386: Use Hypervisor level in -machine pc,accel=tcg. >> target-i386: Add Hypervisor vendor. >> target-i386: Add cpu object access routines for Hypervisor vendor. >> target-i386: Use Hypervisor vendor in -machine pc,accel=kvm. >> target-i386: Use Hypervisor vendor in -machine pc,accel=tcg. >> target-i386: Add some known names to Hypervisor vendor. >> target-i386: Add optional Hypervisor leaf extra. >> target-i386: Add cpu object access routines for Hypervisor leaf >> extra. >> target-i386: Add setting of Hypervisor leaf extra for known vmare4. >> target-i386: Use Hypervisor leaf extra in -machine pc,accel=kvm. >> target-i386: Use Hypervisor leaf extra in -machine pc,accel=tcg. >> >> target-i386/cpu.c | 285 ++++++++++++++++++++++++++++++++++++++++++++++++++++- >> target-i386/cpu.h | 34 +++++++ >> target-i386/kvm.c | 33 +++++- >> 3 files changed, 341 insertions(+), 11 deletions(-) >> >> -Don