summaryrefslogtreecommitdiff
path: root/kernel/delayacct.c
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2007-10-18 10:06:34 (GMT)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-18 21:37:28 (GMT)
commitc66f08be7e3ad0a28bcd9a0aef766fdf08ea0ec6 (patch)
treed147c0a43a66973014d924a6020388a249c509a7 /kernel/delayacct.c
parent898eb71cb17644964c5895fb190e79e3d0c49679 (diff)
downloadlinux-fsl-qoriq-c66f08be7e3ad0a28bcd9a0aef766fdf08ea0ec6.tar.xz
Add scaled time to taskstats based process accounting
This adds items to the taststats struct to account for user and system time based on scaling the CPU frequency and instruction issue rates. Adds account_(user|system)_time_scaled callbacks which architectures can use to account for time using this mechanism. Signed-off-by: Michael Neuling <mikey@neuling.org> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Jay Lan <jlan@engr.sgi.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/delayacct.c')
-rw-r--r--kernel/delayacct.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/delayacct.c b/kernel/delayacct.c
index 09e9574..10e43fd 100644
--- a/kernel/delayacct.c
+++ b/kernel/delayacct.c
@@ -115,6 +115,12 @@ int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk)
tmp += timespec_to_ns(&ts);
d->cpu_run_real_total = (tmp < (s64)d->cpu_run_real_total) ? 0 : tmp;
+ tmp = (s64)d->cpu_scaled_run_real_total;
+ cputime_to_timespec(tsk->utimescaled + tsk->stimescaled, &ts);
+ tmp += timespec_to_ns(&ts);
+ d->cpu_scaled_run_real_total =
+ (tmp < (s64)d->cpu_scaled_run_real_total) ? 0 : tmp;
+
/*
* No locking available for sched_info (and too expensive to add one)
* Mitigate by taking snapshot of values