MFC r208488:
Fix the double counting of the last process thread td_incruntime on exit, that is done once in thread_exit() and the second time in proc_reap(), by clearing td_incruntime. Approved by: re (kensmith)
This commit is contained in:
parent
7b0f9e6cc7
commit
f3e1e28bcc
@ -76,7 +76,7 @@ static void calcru1(struct proc *p, struct rusage_ext *ruxp,
|
||||
struct timeval *up, struct timeval *sp);
|
||||
static int donice(struct thread *td, struct proc *chgp, int n);
|
||||
static struct uidinfo *uilookup(uid_t uid);
|
||||
static void ruxagg(struct proc *p, struct thread *td);
|
||||
static void ruxagg_locked(struct rusage_ext *rux, struct thread *td);
|
||||
|
||||
/*
|
||||
* Resource controls and accounting.
|
||||
@ -1010,7 +1010,7 @@ ruadd(struct rusage *ru, struct rusage_ext *rux, struct rusage *ru2,
|
||||
/*
|
||||
* Aggregate tick counts into the proc's rusage_ext.
|
||||
*/
|
||||
void
|
||||
static void
|
||||
ruxagg_locked(struct rusage_ext *rux, struct thread *td)
|
||||
{
|
||||
|
||||
@ -1022,7 +1022,7 @@ ruxagg_locked(struct rusage_ext *rux, struct thread *td)
|
||||
rux->rux_iticks += td->td_iticks;
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
ruxagg(struct proc *p, struct thread *td)
|
||||
{
|
||||
|
||||
|
@ -430,8 +430,8 @@ thread_exit(void)
|
||||
PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_OUT);
|
||||
#endif
|
||||
PROC_UNLOCK(p);
|
||||
ruxagg(p, td);
|
||||
thread_lock(td);
|
||||
ruxagg_locked(&p->p_rux, td);
|
||||
PROC_SUNLOCK(p);
|
||||
td->td_state = TDS_INACTIVE;
|
||||
#ifdef WITNESS
|
||||
|
@ -131,7 +131,7 @@ void rucollect(struct rusage *ru, struct rusage *ru2);
|
||||
void rufetch(struct proc *p, struct rusage *ru);
|
||||
void rufetchcalc(struct proc *p, struct rusage *ru, struct timeval *up,
|
||||
struct timeval *sp);
|
||||
void ruxagg_locked(struct rusage_ext *rux, struct thread *td);
|
||||
void ruxagg(struct proc *p, struct thread *td);
|
||||
int suswintr(void *base, int word);
|
||||
struct uidinfo
|
||||
*uifind(uid_t uid);
|
||||
|
Loading…
x
Reference in New Issue
Block a user