From patchwork Fri Oct 12 19:56:14 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Don Slutz X-Patchwork-Id: 191211 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id B1BD42C008B for ; Sat, 13 Oct 2012 07:39:51 +1100 (EST) Received: from localhost ([::1]:49103 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TMlMT-0001pL-HC for incoming@patchwork.ozlabs.org; Fri, 12 Oct 2012 15:57:33 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46264) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TMlMG-0001e5-4t for qemu-devel@nongnu.org; Fri, 12 Oct 2012 15:57:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TMlME-00012C-TG for qemu-devel@nongnu.org; Fri, 12 Oct 2012 15:57:19 -0400 Received: from hub021-nj-6.exch021.serverdata.net ([206.225.164.222]:41669) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TMlME-000123-PL for qemu-devel@nongnu.org; Fri, 12 Oct 2012 15:57:18 -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:57:25 -0700 From: Don Slutz To: , , , , , , , , Date: Fri, 12 Oct 2012 15:56:14 -0400 Message-ID: <1350071782-23078-10-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 X-detected-operating-system: by eggs.gnu.org: Windows 2000 SP2+, XP SP1+ (seldom 98) X-Received-From: 206.225.164.222 Cc: Don Slutz Subject: [Qemu-devel] [PATCH v7 09/17] target-i386: Use x86_set_hyperv to set hypervisor features. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Part of "target-i386: Add way to expose VMWare CPUID" At this stage it is used to set the cpu object's hypervisor features to the default for Microsoft's Hypervisor ("Hv#1"). Also known as kvm festures or Hypervisor vendor-neutral interface identification. This is the EAX value for 0x40000001. QEMU knows this is KVM_CPUID_FEATURES (0x40000001) in some builds. This is based on: Microsoft Hypervisor CPUID Leaves: http://msdn.microsoft.com/en-us/library/windows/hardware/ff542428%28v=vs.85%29.aspx Signed-off-by: Don Slutz --- target-i386/cpu.c | 2 ++ target-i386/cpu.h | 1 + 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 958be81..f058add 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1259,6 +1259,8 @@ static void x86_set_hyperv(Object *obj, Error **errp) "hypervisor-level", errp); object_property_set_str(obj, CPUID_HV_VENDOR_HYPERV, "hypervisor-vendor", errp); + object_property_set_int(obj, CPUID_HV_FEATURES_HYPERV, + "hypervisor-features", errp); } static void x86_get_hv_spinlocks(Object *obj, Visitor *v, void *opaque, diff --git a/target-i386/cpu.h b/target-i386/cpu.h index f2045d6..9a34c7b 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -492,6 +492,7 @@ * Microsoft hypervisors. Is related to HYPERV_CPUID_MIN. */ #define CPUID_HV_LEVEL_HYPERV_CPUID_MIN 0x40000005 #define CPUID_HV_VENDOR_HYPERV "Microsoft Hv" +#define CPUID_HV_FEATURES_HYPERV 0x31237648 /* "Hv#1" */ #define CPUID_MWAIT_IBE (1 << 1) /* Interrupts can exit capability */ #define CPUID_MWAIT_EMX (1 << 0) /* enumeration supported */