The KVM signature at 0x40000100 implies that the active features are at 0x40000101 (though QEMU is buggy right now). Print that leaf too if KVM is found at 0x40000100.
However, the Hyper-V signature can only be at 0x40000000. Signed-off-by: Paolo Bonzini <[email protected]> --- qemu/deps/cpuid/src/test.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/qemu/deps/cpuid/src/test.c b/qemu/deps/cpuid/src/test.c index ba59967..13ed43d 100644 --- a/qemu/deps/cpuid/src/test.c +++ b/qemu/deps/cpuid/src/test.c @@ -82,29 +82,29 @@ static unsigned int print_leaf(unsigned int leaf, unsigned int idx) #define HYPERV_CPUID_IMPLEMENT_LIMITS 0x40000005 #define KVM_CPUID_SIGNATURE_NEXT 0x40000100 -static void dump_kvm_leafs() +static void dump_kvm_leafs(unsigned base) { unsigned int eax, ebx, ecx, edx; asm("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) - : "a" (KVM_CPUID_SIGNATURE)); + : "a" (KVM_CPUID_SIGNATURE | base)); /* "KVMKVMKVM\0\0\0" */ if ((ebx == 0x4b4d564b) && (ecx == 0x564b4d56) && (edx == 0x4d)) { - print_leaf(KVM_CPUID_SIGNATURE, 0); - print_leaf(KVM_CPUID_FEATURES, 0); + print_leaf(base | KVM_CPUID_SIGNATURE, 0); + print_leaf(base | KVM_CPUID_FEATURES, 0); /* "Microsoft Hv" */ - } else if ((ebx == 0x7263694d) && (ecx == 0x666f736f) && - (edx == 0x76482074)) { + } else if (base == HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS + && (ebx == 0x7263694d) + && (ecx == 0x666f736f) && (edx == 0x76482074)) { print_leaf(HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS, 0); print_leaf(HYPERV_CPUID_INTERFACE, 0); print_leaf(HYPERV_CPUID_VERSION, 0); print_leaf(HYPERV_CPUID_FEATURES, 0); print_leaf(HYPERV_CPUID_ENLIGHTMENT_INFO, 0); print_leaf(HYPERV_CPUID_IMPLEMENT_LIMITS, 0); - print_leaf(KVM_CPUID_SIGNATURE_NEXT, 0); } } @@ -140,5 +140,6 @@ void test() x2level = eax; } } - dump_kvm_leafs(); + dump_kvm_leafs(KVM_CPUID_SIGNATURE); + dump_kvm_leafs(KVM_CPUID_SIGNATURE_NEXT); } -- 1.8.3.1 _______________________________________________ Virt-test-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/virt-test-devel
