summaryrefslogtreecommitdiffstats
path: root/sys/kern/tty.c
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2019-05-31 19:51:09 +0000
committermpi <mpi@openbsd.org>2019-05-31 19:51:09 +0000
commit4b91b74a18bc983f4cced5ae0e1d3b81f991786d (patch)
tree29d70291869a15eda0161c68981def08ec425f62 /sys/kern/tty.c
parentRe-enable frame pointer elimination for x86 and mips64 if optimizations are (diff)
downloadwireguard-openbsd-4b91b74a18bc983f4cced5ae0e1d3b81f991786d.tar.xz
wireguard-openbsd-4b91b74a18bc983f4cced5ae0e1d3b81f991786d.zip
Use a per-process mutex to protect time accounting instead of SCHED_LOCK().
Note that hardclock(9) still increments p_{u,s,i}ticks without holding a lock. ok visa@, cheloha@
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r--sys/kern/tty.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c
index fd54b0fca75..5c4366e66a5 100644
--- a/sys/kern/tty.c
+++ b/sys/kern/tty.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tty.c,v 1.144 2019/05/13 19:21:31 bluhm Exp $ */
+/* $OpenBSD: tty.c,v 1.145 2019/05/31 19:51:10 mpi Exp $ */
/* $NetBSD: tty.c,v 1.68.4.2 1996/06/06 16:04:52 thorpej Exp $ */
/*-
@@ -2191,7 +2191,9 @@ update_pickpr:
rss = (pickpr->ps_flags & (PS_EMBRYO | PS_ZOMBIE)) ? 0 :
vm_resident_count(pickpr->ps_vmspace);
+ mtx_enter(&pickpr->ps_mtx);
calctsru(&pickpr->ps_tu, &utime, &stime, NULL);
+ mtx_leave(&pickpr->ps_mtx);
/* Round up and print user time. */
utime.tv_nsec += 5000000;