Date: Mon, 14 Sep 2020 09:44:25 +0000 (UTC) From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r365710 - head/sys/kern Message-ID: <202009140944.08E9iPt7008010@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: trasz Date: Mon Sep 14 09:44:24 2020 New Revision: 365710 URL: https://svnweb.freebsd.org/changeset/base/365710 Log: Move racct/rctl throttling from userret() to ast(). There's no reason for it to sit in the syscall fast path. Reviewed by: kib MFC after: 2 weeks Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D26368 Modified: head/sys/kern/kern_racct.c head/sys/kern/subr_trap.c Modified: head/sys/kern/kern_racct.c ============================================================================== --- head/sys/kern/kern_racct.c Mon Sep 14 08:59:16 2020 (r365709) +++ head/sys/kern/kern_racct.c Mon Sep 14 09:44:24 2020 (r365710) @@ -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: /* Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Mon Sep 14 08:59:16 2020 (r365709) +++ head/sys/kern/subr_trap.c Mon Sep 14 09:44:24 2020 (r365710) @@ -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 } /* @@ -361,6 +357,11 @@ ast(struct trapframe *framep) td->td_pflags &= ~TDP_OLDMASK; 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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202009140944.08E9iPt7008010>