[PATCH v7 08/17] target-i386: Use x86_set_hyperv to set hypervisor vendor.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Part of "target-i386: Add way to expose VMWare CPUID"

At this stage it is used to set the cpu object's hypervisor vendor
to the default for Microsoft's Hypervisor ("Microsoft Hv").

Also known as Paravirtualization vendor.
This is EBX, ECX, EDX data 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

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 283ac01..958be81 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1257,6 +1257,8 @@ static void x86_set_hyperv(Object *obj, Error **errp)
 {
     object_property_set_int(obj, CPUID_HV_LEVEL_HYPERV_CPUID_MIN,
                             "hypervisor-level", errp);
+    object_property_set_str(obj, CPUID_HV_VENDOR_HYPERV,
+                            "hypervisor-vendor", 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 cd4e83c..f2045d6 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -491,6 +491,7 @@
 /* The maximum input value for hypervisor CPUID information for
  * 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_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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux