From fb62eea266793b58e27d1ac608fd1db8312fc9b2 Mon Sep 17 00:00:00 2001 From: Jeff Roberson Date: Tue, 17 Jul 2007 01:08:09 +0000 Subject: [PATCH] - Use ruxagg() in calcru() to make sure we have current tick information from all threads. Discussed with: bde, attilio Approved by: re --- sys/kern/kern_resource.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/kern/kern_resource.c b/sys/kern/kern_resource.c index 8627a149bb5..5086a5921a9 100644 --- a/sys/kern/kern_resource.c +++ b/sys/kern/kern_resource.c @@ -840,6 +840,14 @@ calcru(struct proc *p, struct timeval *up, struct timeval *sp) p->p_rux.rux_runtime += u - PCPU_GET(switchtime); PCPU_SET(switchtime, u); } + /* Make sure the per-thread stats are current. */ + FOREACH_THREAD_IN_PROC(p, td) { + if (td->td_runtime == 0) + continue; + thread_lock(td); + ruxagg(&p->p_rux, td); + thread_unlock(td); + } calcru1(p, &p->p_rux, up, sp); }