summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2020-09-14 09:44:24 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2020-09-14 09:44:24 +0000
commit30d158eeccadf5bd545b93526f8562ba4b30a474 (patch)
treea3dbbb0ae60e69e9becb11c764b8aed9ed559896
parentd729904a4f9e7c1cd5373a8fbef56c003faf6851 (diff)
Notes
-rw-r--r--sys/kern/kern_racct.c2
-rw-r--r--sys/kern/subr_trap.c9
2 files changed, 7 insertions, 4 deletions
diff --git a/sys/kern/kern_racct.c b/sys/kern/kern_racct.c
index 2dc077ac0b62..f0d776b7b2a1 100644
--- a/sys/kern/kern_racct.c
+++ b/sys/kern/kern_racct.c
@@ -1146,6 +1146,8 @@ racct_proc_throttle(struct proc *p, int timeout)
FOREACH_THREAD_IN_PROC(p, td) {
thread_lock(td);
+ td->td_flags |= TDF_ASTPENDING;
+
switch (td->td_state) {
case TDS_RUNQ:
/*
diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c
index 145ed0262ad8..6b58dd9fc641 100644
--- a/sys/kern/subr_trap.c
+++ b/sys/kern/subr_trap.c
@@ -206,10 +206,6 @@ userret(struct thread *td, struct trapframe *frame)
__func__, td, p->p_pid, td->td_name, curvnet,
(td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A"));
#endif
-#ifdef RACCT
- if (__predict_false(racct_enable && p->p_throttled != 0))
- racct_proc_throttled(p);
-#endif
}
/*
@@ -362,6 +358,11 @@ ast(struct trapframe *framep)
kern_sigprocmask(td, SIG_SETMASK, &td->td_oldsigmask, NULL, 0);
}
+#ifdef RACCT
+ if (__predict_false(racct_enable && p->p_throttled != 0))
+ racct_proc_throttled(p);
+#endif
+
userret(td, framep);
}