KVM: selftests: make hyperv_cpuid test pass on AMD [Linux 5.1]

KVM: selftests: make hyperv_cpuid test pass on AMD [Linux 5.1]

This Linux kernel change "KVM: selftests: make hyperv_cpuid test pass on AMD" is included in the Linux 5.1 release. This change is authored by Vitaly Kuznetsov <vkuznets [at] redhat.com> on Fri Apr 26 15:27:11 2019 +0200. The commit for this change in Linux stable tree is eba3afd (patch).

KVM: selftests: make hyperv_cpuid test pass on AMD

Enlightened VMCS is only supported on Intel CPUs but the test shouldn't
fail completely.

Signed-off-by: Vitaly Kuznetsov <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>

There are 9 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c b/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c
index 264425f..9a21e91 100644
--- a/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c
+++ b/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c
@@ -141,7 +141,13 @@ int main(int argc, char *argv[])

    free(hv_cpuid_entries);

-   vcpu_ioctl(vm, VCPU_ID, KVM_ENABLE_CAP, &enable_evmcs_cap);
+   rv = _vcpu_ioctl(vm, VCPU_ID, KVM_ENABLE_CAP, &enable_evmcs_cap);
+
+   if (rv) {
+       fprintf(stderr,
+           "Enlightened VMCS is unsupported, skip related test\n");
+       goto vm_free;
+   }

    hv_cpuid_entries = kvm_get_supported_hv_cpuid(vm);
    if (!hv_cpuid_entries)
@@ -151,6 +157,7 @@ int main(int argc, char *argv[])

    free(hv_cpuid_entries);

+vm_free:
    kvm_vm_free(vm);

    return 0;

Leave a Reply

Your email address will not be published. Required fields are marked *