diff options
author | Michael Neuling <mikey@neuling.org> | 2007-10-18 03:06:34 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 14:37:28 -0700 |
commit | c66f08be7e3ad0a28bcd9a0aef766fdf08ea0ec6 (patch) | |
tree | d147c0a43a66973014d924a6020388a249c509a7 /kernel/timer.c | |
parent | 898eb71cb17644964c5895fb190e79e3d0c49679 (diff) | |
download | lwn-c66f08be7e3ad0a28bcd9a0aef766fdf08ea0ec6.tar.gz lwn-c66f08be7e3ad0a28bcd9a0aef766fdf08ea0ec6.zip |
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/timer.c')
-rw-r--r-- | kernel/timer.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index 0735f0aa3afb..8521d10fbb27 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -826,10 +826,13 @@ void update_process_times(int user_tick) int cpu = smp_processor_id(); /* Note: this timer irq context must be accounted for as well. */ - if (user_tick) + if (user_tick) { account_user_time(p, jiffies_to_cputime(1)); - else + account_user_time_scaled(p, jiffies_to_cputime(1)); + } else { account_system_time(p, HARDIRQ_OFFSET, jiffies_to_cputime(1)); + account_system_time_scaled(p, jiffies_to_cputime(1)); + } run_local_timers(); if (rcu_pending(cpu)) rcu_check_callbacks(cpu, user_tick); |