KVM: SVM: Add support for perf-kvm
[pandora-kernel.git] / arch / x86 / kvm / svm.c
index 63fec15..bfb4948 100644 (file)
@@ -3647,13 +3647,21 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
 
        local_irq_disable();
 
-       stgi();
-
        vcpu->arch.cr2 = svm->vmcb->save.cr2;
        vcpu->arch.regs[VCPU_REGS_RAX] = svm->vmcb->save.rax;
        vcpu->arch.regs[VCPU_REGS_RSP] = svm->vmcb->save.rsp;
        vcpu->arch.regs[VCPU_REGS_RIP] = svm->vmcb->save.rip;
 
+       if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI))
+               kvm_before_handle_nmi(&svm->vcpu);
+
+       stgi();
+
+       /* Any pending NMI will happen here */
+
+       if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI))
+               kvm_after_handle_nmi(&svm->vcpu);
+
        sync_cr8_to_lapic(vcpu);
 
        svm->next_rip = 0;