Patchwork [v7,10/17] target-i386: Use Hypervisor level in -machine pc, accel=kvm.

login
register
mail settings
Submitter Don Slutz
Date Oct. 12, 2012, 7:56 p.m.
Message ID <1350071782-23078-11-git-send-email-Don@CloudSwitch.com>
Download mbox | patch
Permalink /patch/191209/
State New
Headers show

Comments

Don Slutz - Oct. 12, 2012, 7:56 p.m.
Part of "target-i386: Add way to expose VMWare CPUID"

Also known as Paravirtualization level.

QEMU knows this is KVM_CPUID_SIGNATURE (0x40000000).

Signed-off-by: Don Slutz <Don@CloudSwitch.com>
---
 target-i386/kvm.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

Patch

diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 5b18383..30963e1 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -392,10 +392,14 @@  int kvm_arch_init_vcpu(CPUX86State *env)
     c->function = KVM_CPUID_SIGNATURE;
     if (!hyperv_enabled()) {
         memcpy(signature, "KVMKVMKVM\0\0\0", 12);
-        c->eax = 0;
+        if (!env->cpuid_hv_level_set) {
+            c->eax = 0;
+        } else {
+            c->eax = env->cpuid_hv_level;
+        }
     } else {
         memcpy(signature, "Microsoft Hv", 12);
-        c->eax = HYPERV_CPUID_MIN;
+        c->eax = env->cpuid_hv_level;
     }
     c->ebx = signature[0];
     c->ecx = signature[1];