diff options
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/amd64/amd64/vmm.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/arch/amd64/amd64/vmm.c b/sys/arch/amd64/amd64/vmm.c index 8ef4a14f85f..a3c7e42510c 100644 --- a/sys/arch/amd64/amd64/vmm.c +++ b/sys/arch/amd64/amd64/vmm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vmm.c,v 1.284 2021/05/18 00:05:20 dv Exp $ */ +/* $OpenBSD: vmm.c,v 1.285 2021/06/07 13:55:54 dv Exp $ */ /* * Copyright (c) 2014 Mike Larkin <mlarkin@openbsd.org> * @@ -28,6 +28,7 @@ #include <sys/rwlock.h> #include <sys/pledge.h> #include <sys/memrange.h> +#include <sys/tracepoint.h> #include <uvm/uvm_extern.h> @@ -4704,6 +4705,8 @@ vcpu_run_vmx(struct vcpu *vcpu, struct vm_run_params *vrp) invvpid(IA32_VMX_INVVPID_SINGLE_CTX_GLB, &vid); } + TRACEPOINT(vmm, guest_enter, vcpu, vrp); + /* Start / resume the VCPU */ #ifdef VMM_DEBUG KERNEL_ASSERT_LOCKED(); @@ -4756,6 +4759,8 @@ vcpu_run_vmx(struct vcpu *vcpu, struct vm_run_params *vrp) } } + TRACEPOINT(vmm, guest_exit, vcpu, vrp, exit_reason); + if (ret || exitinfo != VMX_EXIT_INFO_COMPLETE || exit_reason != VMX_EXIT_EXTINT) { KERNEL_LOCK(); @@ -7059,6 +7064,8 @@ vcpu_run_svm(struct vcpu *vcpu, struct vm_run_params *vrp) vcpu->vc_event = 0; } + TRACEPOINT(vmm, guest_enter, vcpu, vrp); + /* Start / resume the VCPU */ #ifdef VMM_DEBUG KERNEL_ASSERT_LOCKED(); @@ -7103,6 +7110,8 @@ vcpu_run_svm(struct vcpu *vcpu, struct vm_run_params *vrp) vcpu->vc_gueststate.vg_exit_reason = exit_reason; } + TRACEPOINT(vmm, guest_exit, vcpu, vrp, exit_reason); + /* If we exited successfully ... */ if (ret == 0) { vcpu->vc_gueststate.vg_rflags = vmcb->v_rflags; |