aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/taskstats.h
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2007-10-18 06:06:34 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-18 17:37:28 -0400
commitc66f08be7e3ad0a28bcd9a0aef766fdf08ea0ec6 (patch)
treed147c0a43a66973014d924a6020388a249c509a7 /include/linux/taskstats.h
parent898eb71cb17644964c5895fb190e79e3d0c49679 (diff)
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 'include/linux/taskstats.h')
-rw-r--r--include/linux/taskstats.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/include/linux/taskstats.h b/include/linux/taskstats.h
index dce1ed204972..92bfd1c153fb 100644
--- a/include/linux/taskstats.h
+++ b/include/linux/taskstats.h
@@ -31,7 +31,7 @@
31 */ 31 */
32 32
33 33
34#define TASKSTATS_VERSION 5 34#define TASKSTATS_VERSION 6
35#define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN 35#define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN
36 * in linux/sched.h */ 36 * in linux/sched.h */
37 37
@@ -85,9 +85,12 @@ struct taskstats {
85 * On some architectures, value will adjust for cpu time stolen 85 * On some architectures, value will adjust for cpu time stolen
86 * from the kernel in involuntary waits due to virtualization. 86 * from the kernel in involuntary waits due to virtualization.
87 * Value is cumulative, in nanoseconds, without a corresponding count 87 * Value is cumulative, in nanoseconds, without a corresponding count
88 * and wraps around to zero silently on overflow 88 * and wraps around to zero silently on overflow. The
89 * _scaled_ version accounts for cpus which can scale the
90 * number of instructions executed each cycle.
89 */ 91 */
90 __u64 cpu_run_real_total; 92 __u64 cpu_run_real_total;
93 __u64 cpu_scaled_run_real_total;
91 94
92 /* cpu "virtual" running time 95 /* cpu "virtual" running time
93 * Uses time intervals seen by the kernel i.e. no adjustment 96 * Uses time intervals seen by the kernel i.e. no adjustment
@@ -142,6 +145,10 @@ struct taskstats {
142 __u64 write_char; /* bytes written */ 145 __u64 write_char; /* bytes written */
143 __u64 read_syscalls; /* read syscalls */ 146 __u64 read_syscalls; /* read syscalls */
144 __u64 write_syscalls; /* write syscalls */ 147 __u64 write_syscalls; /* write syscalls */
148
149 /* time accounting for SMT machines */
150 __u64 ac_utimescaled; /* utime scaled on frequency etc */
151 __u64 ac_stimescaled; /* stime scaled on frequency etc */
145 /* Extended accounting fields end */ 152 /* Extended accounting fields end */
146 153
147#define TASKSTATS_HAS_IO_ACCOUNTING 154#define TASKSTATS_HAS_IO_ACCOUNTING