diff options
author | Tony Breeds <tony@bakeyournoodle.com> | 2007-12-04 00:51:44 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-12-06 00:08:59 -0500 |
commit | 81a3843f97cff5fef7b6006fcd2d015d3c4b569f (patch) | |
tree | 1175e61f0c23f935d522996220967e81b6e92880 /include/asm-powerpc/time.h | |
parent | 7e1fb765c613298d861f80fa18af26df87a4ec19 (diff) |
[POWERPC] Fix hardware IRQ time accounting problem.
The commit fa13a5a1f25f671d084d8884be96fc48d9b68275 (sched: restore
deterministic CPU accounting on powerpc), unconditionally calls
update_process_tick() in system context. In the deterministic
accounting case this is the correct thing to do. However, in the
non-deterministic accounting case we need to not do this, since doing
this results in the time accounted as hardware irq time being
artificially elevated.
Also this collapses 2 consecutive '#ifdef CONFIG_VIRT_CPU_ACCOUNTING'
checks in time.h into one for neatness.
Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-powerpc/time.h')
-rw-r--r-- | include/asm-powerpc/time.h | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/include/asm-powerpc/time.h b/include/asm-powerpc/time.h index 780f82642756..ce5de6e0e690 100644 --- a/include/asm-powerpc/time.h +++ b/include/asm-powerpc/time.h | |||
@@ -237,18 +237,14 @@ struct cpu_usage { | |||
237 | 237 | ||
238 | DECLARE_PER_CPU(struct cpu_usage, cpu_usage_array); | 238 | DECLARE_PER_CPU(struct cpu_usage, cpu_usage_array); |
239 | 239 | ||
240 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | ||
241 | extern void account_process_vtime(struct task_struct *tsk); | ||
242 | #else | ||
243 | #define account_process_vtime(tsk) do { } while (0) | ||
244 | #endif | ||
245 | |||
246 | #if defined(CONFIG_VIRT_CPU_ACCOUNTING) | 240 | #if defined(CONFIG_VIRT_CPU_ACCOUNTING) |
247 | extern void calculate_steal_time(void); | 241 | extern void calculate_steal_time(void); |
248 | extern void snapshot_timebases(void); | 242 | extern void snapshot_timebases(void); |
243 | #define account_process_vtime(tsk) account_process_tick(tsk, 0) | ||
249 | #else | 244 | #else |
250 | #define calculate_steal_time() do { } while (0) | 245 | #define calculate_steal_time() do { } while (0) |
251 | #define snapshot_timebases() do { } while (0) | 246 | #define snapshot_timebases() do { } while (0) |
247 | #define account_process_vtime(tsk) do { } while (0) | ||
252 | #endif | 248 | #endif |
253 | 249 | ||
254 | extern void secondary_cpu_time_init(void); | 250 | extern void secondary_cpu_time_init(void); |