diff options
author | Michael Neuling <mikey@neuling.org> | 2007-10-18 06:06:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 17:37:28 -0400 |
commit | c66f08be7e3ad0a28bcd9a0aef766fdf08ea0ec6 (patch) | |
tree | d147c0a43a66973014d924a6020388a249c509a7 /include/linux/taskstats.h | |
parent | 898eb71cb17644964c5895fb190e79e3d0c49679 (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.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/include/linux/taskstats.h b/include/linux/taskstats.h index dce1ed20497..92bfd1c153f 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 |