| From 0b4c208d443ba2af82b4c70f99ca8df31e9a0020 Mon Sep 17 00:00:00 2001 |
| From: Jim Mattson <jmattson@google.com> |
| Date: Tue, 20 Dec 2016 16:34:50 -0800 |
| Subject: [PATCH] Revert "KVM: nested VMX: disable perf cpuid reporting" |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| commit 0b4c208d443ba2af82b4c70f99ca8df31e9a0020 upstream. |
| |
| This reverts commit bc6134942dbbf31c25e9bd7c876be5da81c9e1ce. |
| |
| A CPUID instruction executed in VMX non-root mode always causes a |
| VM-exit, regardless of the leaf being queried. |
| |
| Fixes: bc6134942dbb ("KVM: nested VMX: disable perf cpuid reporting") |
| Signed-off-by: Jim Mattson <jmattson@google.com> |
| [The issue solved by bc6134942dbb has been resolved with ff651cb613b4 |
| ("KVM: nVMX: Add nested msr load/restore algorithm").] |
| Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> |
| |
| diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c |
| index 09c2ac741567..c0e2036217ad 100644 |
| --- a/arch/x86/kvm/cpuid.c |
| +++ b/arch/x86/kvm/cpuid.c |
| @@ -861,12 +861,6 @@ void kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx, u32 *ecx, u32 *edx) |
| if (!best) |
| best = check_cpuid_limit(vcpu, function, index); |
| |
| - /* |
| - * Perfmon not yet supported for L2 guest. |
| - */ |
| - if (is_guest_mode(vcpu) && function == 0xa) |
| - best = NULL; |
| - |
| if (best) { |
| *eax = best->eax; |
| *ebx = best->ebx; |
| diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c |
| index 4e691035a32d..c7bafa1457e2 100644 |
| --- a/arch/x86/kvm/vmx.c |
| +++ b/arch/x86/kvm/vmx.c |
| @@ -8203,8 +8203,6 @@ static bool nested_vmx_exit_handled(struct kvm_vcpu *vcpu) |
| case EXIT_REASON_TASK_SWITCH: |
| return true; |
| case EXIT_REASON_CPUID: |
| - if (kvm_register_read(vcpu, VCPU_REGS_RAX) == 0xa) |
| - return false; |
| return true; |
| case EXIT_REASON_HLT: |
| return nested_cpu_has(vmcs12, CPU_BASED_HLT_EXITING); |
| -- |
| 2.12.0 |
| |