From patchwork Fri Oct 12 19:56:06 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Don Slutz X-Patchwork-Id: 1588121 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id F07963FD9C for ; Fri, 12 Oct 2012 19:56:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751245Ab2JLT4o (ORCPT ); Fri, 12 Oct 2012 15:56:44 -0400 Received: from hub021-nj-6.exch021.serverdata.net ([206.225.164.222]:22340 "EHLO hub021-nj-6.exch021.serverdata.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751100Ab2JLT4n (ORCPT ); Fri, 12 Oct 2012 15:56:43 -0400 Received: from localhost.localdomain (152.179.192.130) by east.exch021.serverdata.net (10.240.4.93) with Microsoft SMTP Server (TLS) id 14.2.309.2; Fri, 12 Oct 2012 12:56:50 -0700 From: Don Slutz To: , , , , , , , , CC: Don Slutz Subject: [PATCH v7 01/17] target-i386: Add Hypervisor level. Date: Fri, 12 Oct 2012 15:56:06 -0400 Message-ID: <1350071782-23078-2-git-send-email-Don@CloudSwitch.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1350071782-23078-1-git-send-email-Don@CloudSwitch.com> References: <1350071782-23078-1-git-send-email-Don@CloudSwitch.com> MIME-Version: 1.0 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Part of "target-i386: Add way to expose VMWare CPUID" Also known as Paravirtualization level or maximim cpuid function present in this leaf. This is the EAX value for 0x40000000. QEMU knows this is KVM_CPUID_SIGNATURE (0x40000000). This 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 Signed-off-by: Don Slutz --- target-i386/cpu.h | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/target-i386/cpu.h b/target-i386/cpu.h index 5265c5a..1899f69 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -777,11 +777,14 @@ typedef struct CPUX86State { uint32_t cpuid_ext3_features; uint32_t cpuid_apic_id; bool cpuid_vendor_override; + bool cpuid_hv_level_set; /* Store the results of Centaur's CPUID instructions */ uint32_t cpuid_xlevel2; uint32_t cpuid_ext4_features; /* Flags from CPUID[EAX=7,ECX=0].EBX */ uint32_t cpuid_7_0_ebx; + /* Hypervisor CPUIDs */ + uint32_t cpuid_hv_level; /* MTRRs */ uint64_t mtrr_fixed[11];