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 <Don@xxxxxxxxxxxxxxx> --- 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 */ -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html