summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_sched.c
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2020-01-21 16:16:22 +0000
committermpi <mpi@openbsd.org>2020-01-21 16:16:22 +0000
commit91b2ecf67e2a667ccefd071f95f44a8068f1bbc4 (patch)
tree4844bb05cf2473deb3060725603f0582ebfa6974 /sys/kern/kern_sched.c
parentregen (diff)
downloadwireguard-openbsd-91b2ecf67e2a667ccefd071f95f44a8068f1bbc4.tar.xz
wireguard-openbsd-91b2ecf67e2a667ccefd071f95f44a8068f1bbc4.zip
Import dt(4) a driver and framework for Dynamic Profiling.
The design is fairly simple: events, in the form of descriptors on a ring, are being produced in any kernel context and being consumed by a userland process reading /dev/dt. Code and hooks are all guarded under '#if NDT > 0' so this commit shouldn't introduce any change as long as dt(4) is disable in GENERIC. ok kettenis@, visa@, jasper@, deraadt@
Diffstat (limited to 'sys/kern/kern_sched.c')
-rw-r--r--sys/kern/kern_sched.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/kern/kern_sched.c b/sys/kern/kern_sched.c
index 46de8fa7800..e25993099ee 100644
--- a/sys/kern/kern_sched.c
+++ b/sys/kern/kern_sched.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_sched.c,v 1.62 2019/11/04 18:06:03 visa Exp $ */
+/* $OpenBSD: kern_sched.c,v 1.63 2020/01/21 16:16:23 mpi Exp $ */
/*
* Copyright (c) 2007, 2008 Artur Grabowski <art@openbsd.org>
*
@@ -26,6 +26,7 @@
#include <sys/mutex.h>
#include <sys/task.h>
#include <sys/smr.h>
+#include <sys/tracepoint.h>
#include <uvm/uvm_extern.h>
@@ -261,6 +262,7 @@ setrunqueue(struct cpu_info *ci, struct proc *p, uint8_t prio)
spc = &p->p_cpu->ci_schedstate;
spc->spc_nrun++;
+ TRACEPOINT(sched, enqueue, p->p_tid, p->p_p->ps_pid);
TAILQ_INSERT_TAIL(&spc->spc_qs[queue], p, p_runq);
spc->spc_whichqs |= (1 << queue);
@@ -282,6 +284,7 @@ remrunqueue(struct proc *p)
SCHED_ASSERT_LOCKED();
spc = &p->p_cpu->ci_schedstate;
spc->spc_nrun--;
+ TRACEPOINT(sched, dequeue, p->p_tid, p->p_p->ps_pid);
TAILQ_REMOVE(&spc->spc_qs[queue], p, p_runq);
if (TAILQ_EMPTY(&spc->spc_qs[queue])) {