aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/subr_trap.c
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2015-07-13 22:52:11 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2015-07-13 22:52:11 +0000
commite94e50af1dbefd1fb72e048d37c020d781a2615a (patch)
tree5e613a9c889b69f4e4a6226a565ecf248e24f7c9 /sys/kern/subr_trap.c
parentd4f3ad3a268f88d6cfe599d05edfe521a3fd6935 (diff)
downloadsrc-e94e50af1dbefd1fb72e048d37c020d781a2615a.tar.gz
src-e94e50af1dbefd1fb72e048d37c020d781a2615a.zip
racct: perform a lockless check for p_throttled
This reduces proc lock contention. Reviewed by: trasz
Notes
Notes: svn path=/head/; revision=285511
Diffstat (limited to 'sys/kern/subr_trap.c')
-rw-r--r--sys/kern/subr_trap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c
index 375bb321485d..a3714563ccac 100644
--- a/sys/kern/subr_trap.c
+++ b/sys/kern/subr_trap.c
@@ -172,7 +172,7 @@ userret(struct thread *td, struct trapframe *frame)
(td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A"));
#endif
#ifdef RACCT
- if (racct_enable) {
+ if (racct_enable && p->p_throttled == 1) {
PROC_LOCK(p);
while (p->p_throttled == 1)
msleep(p->p_racct, &p->p_mtx, 0, "racct", 0);