diff mbox series

KVM: selftests: make hyperv_cpuid test pass on AMD

Message ID 20190426132711.26710-1-vkuznets@redhat.com (mailing list archive)
State New, archived
Headers show
Series KVM: selftests: make hyperv_cpuid test pass on AMD | expand

Commit Message

Vitaly Kuznetsov April 26, 2019, 1:27 p.m. UTC
Enlightened VMCS is only supported on Intel CPUs but the test shouldn't
fail completely.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Paolo Bonzini April 30, 2019, 7:23 p.m. UTC | #1
On 26/04/19 15:27, Vitaly Kuznetsov wrote:
> Enlightened VMCS is only supported on Intel CPUs but the test shouldn't
> fail completely.
> 
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> ---
>  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 264425f75806..9a21e912097c 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;
> 

Queued, thanks.

Paolo
diff mbox series

Patch

diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c b/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c
index 264425f75806..9a21e912097c 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;