summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2000-09-12 18:57:59 +0000
committerjhb <jhb@FreeBSD.org>2000-09-12 18:57:59 +0000
commitb32557dbb8813ae261f652a6964c45bf750a1b71 (patch)
tree692ad216e7c8f2529a3b6b29b1618a3afe71fbef /sys/amd64/include
parent8a2681e22e732cee17c04fabdab335dc840a6fa1 (diff)
downloadFreeBSD-src-b32557dbb8813ae261f652a6964c45bf750a1b71.zip
FreeBSD-src-b32557dbb8813ae261f652a6964c45bf750a1b71.tar.gz
Clean up process accounting some more. Unfortunately, it is still not
quite right on i386 as the CPU who runs statclock() doesn't have a valid clockframe to calculate statistics with.
Diffstat (limited to 'sys/amd64/include')
-rw-r--r--sys/amd64/include/mptable.h32
1 files changed, 14 insertions, 18 deletions
diff --git a/sys/amd64/include/mptable.h b/sys/amd64/include/mptable.h
index eceaa81..5056ed1 100644
--- a/sys/amd64/include/mptable.h
+++ b/sys/amd64/include/mptable.h
@@ -2507,13 +2507,11 @@ forwarded_statclock(int id, int pscnt, int *astmap)
if (pscnt > 1)
return;
- if (p == SMP_prvspace[id].globaldata.gd_idleproc) {
- p->p_sticks++;
+ p->p_sticks++;
+ if (p == SMP_prvspace[id].globaldata.gd_idleproc)
cp_time[CP_IDLE]++;
- } else {
- p->p_sticks++;
+ else
cp_time[CP_SYS]++;
- }
break;
case CHECKSTATE_INTR:
default:
@@ -2536,20 +2534,18 @@ forwarded_statclock(int id, int pscnt, int *astmap)
p->p_iticks++;
cp_time[CP_INTR]++;
}
- if (p != SMP_prvspace[id].globaldata.gd_idleproc) {
- schedclock(p);
+ schedclock(p);
- /* Update resource usage integrals and maximums. */
- if ((pstats = p->p_stats) != NULL &&
- (ru = &pstats->p_ru) != NULL &&
- (vm = p->p_vmspace) != NULL) {
- ru->ru_ixrss += pgtok(vm->vm_tsize);
- ru->ru_idrss += pgtok(vm->vm_dsize);
- ru->ru_isrss += pgtok(vm->vm_ssize);
- rss = pgtok(vmspace_resident_count(vm));
- if (ru->ru_maxrss < rss)
- ru->ru_maxrss = rss;
- }
+ /* Update resource usage integrals and maximums. */
+ if ((pstats = p->p_stats) != NULL &&
+ (ru = &pstats->p_ru) != NULL &&
+ (vm = p->p_vmspace) != NULL) {
+ ru->ru_ixrss += pgtok(vm->vm_tsize);
+ ru->ru_idrss += pgtok(vm->vm_dsize);
+ ru->ru_isrss += pgtok(vm->vm_ssize);
+ rss = pgtok(vmspace_resident_count(vm));
+ if (ru->ru_maxrss < rss)
+ ru->ru_maxrss = rss;
}
}
OpenPOWER on IntegriCloud