summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/svm/svm.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2023-01-25 19:17:07 +0100
committerLouis Burda <quent.burda@gmail.com>2023-01-25 19:17:07 +0100
commitaf02fe2bb56116a018cf5d4838690224d3e25898 (patch)
tree5285dee4c514b475b39d0fe3b72eba43802de4cf /arch/x86/kvm/svm/svm.c
parent3c37217bc401cf31da0f2fa529f71887081de2bb (diff)
downloadcachepc-linux-af02fe2bb56116a018cf5d4838690224d3e25898.tar.gz
cachepc-linux-af02fe2bb56116a018cf5d4838690224d3e25898.zip
Move vm pause out of irq-masked section
Diffstat (limited to 'arch/x86/kvm/svm/svm.c')
-rw-r--r--arch/x86/kvm/svm/svm.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 5dddca6d28d7..9ebb60f590e5 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -3440,6 +3440,11 @@ static int svm_handle_exit(struct kvm_vcpu *vcpu, fastpath_t exit_fastpath)
struct kvm_run *kvm_run = vcpu->run;
u32 exit_code = svm->vmcb->control.exit_code;
+ if (cachepc_pause_vm) {
+ CPC_DBG("Pausing vm..\n");
+ cachepc_send_pause_event();
+ }
+
trace_kvm_exit(vcpu, KVM_ISA_SVM);
/* SEV-ES guests must use the CR write traps to track CR registers. */
@@ -3983,11 +3988,6 @@ static noinstr void svm_vcpu_enter_exit(struct kvm_vcpu *vcpu)
put_cpu();
- if (cachepc_pause_vm) {
- CPC_DBG("pausing vm..\n");
- cachepc_send_pause_event();
- }
-
guest_state_exit_irqoff();
}
@@ -3995,6 +3995,11 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu)
{
struct vcpu_svm *svm = to_svm(vcpu);
+ if (cachepc_pause_vm) {
+ CPC_DBG("Pausing vm..\n");
+ cachepc_send_pause_event();
+ }
+
trace_kvm_entry(vcpu);
svm->vmcb->save.rax = vcpu->arch.regs[VCPU_REGS_RAX];