summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/amd64/amd64/vmm.c11
-rw-r--r--sys/dev/dt/dt_prov_static.c11
2 files changed, 20 insertions, 2 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;
diff --git a/sys/dev/dt/dt_prov_static.c b/sys/dev/dt/dt_prov_static.c
index bfe92e5f09a..05828f036ff 100644
--- a/sys/dev/dt/dt_prov_static.c
+++ b/sys/dev/dt/dt_prov_static.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dt_prov_static.c,v 1.7 2021/01/06 07:51:40 claudio Exp $ */
+/* $OpenBSD: dt_prov_static.c,v 1.8 2021/06/07 13:55:54 dv Exp $ */
/*
* Copyright (c) 2019 Martin Pieuchot <mpi@openbsd.org>
@@ -69,6 +69,12 @@ DT_STATIC_PROBE3(vfs, bufcache_take, "long", "int", "int64_t");
DT_STATIC_PROBE4(vfs, cleaner, "long", "int", "long", "long");
/*
+ * VMM
+ */
+DT_STATIC_PROBE2(vmm, guest_enter, "void *", "void *");
+DT_STATIC_PROBE3(vmm, guest_exit, "void *", "void *", "uint64_t");
+
+/*
* List of all static probes
*/
struct dt_probe *dtps_static[] = {
@@ -95,6 +101,9 @@ struct dt_probe *dtps_static[] = {
&_DT_STATIC_P(vfs, bufcache_rel),
&_DT_STATIC_P(vfs, bufcache_take),
&_DT_STATIC_P(vfs, cleaner),
+ /* VMM */
+ &_DT_STATIC_P(vmm, guest_enter),
+ &_DT_STATIC_P(vmm, guest_exit),
};
int