diff options
author | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2020-09-14 09:44:24 +0000 |
---|---|---|
committer | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2020-09-14 09:44:24 +0000 |
commit | 30d158eeccadf5bd545b93526f8562ba4b30a474 (patch) | |
tree | a3dbbb0ae60e69e9becb11c764b8aed9ed559896 | |
parent | d729904a4f9e7c1cd5373a8fbef56c003faf6851 (diff) |
Notes
-rw-r--r-- | sys/kern/kern_racct.c | 2 | ||||
-rw-r--r-- | sys/kern/subr_trap.c | 9 |
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); } |