aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorTony Breeds <tony@bakeyournoodle.com>2007-12-04 00:51:44 -0500
committerPaul Mackerras <paulus@samba.org>2007-12-06 00:08:59 -0500
commit81a3843f97cff5fef7b6006fcd2d015d3c4b569f (patch)
tree1175e61f0c23f935d522996220967e81b6e92880 /include
parent7e1fb765c613298d861f80fa18af26df87a4ec19 (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')
-rw-r--r--include/asm-powerpc/time.h8
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
238DECLARE_PER_CPU(struct cpu_usage, cpu_usage_array); 238DECLARE_PER_CPU(struct cpu_usage, cpu_usage_array);
239 239
240#ifdef CONFIG_VIRT_CPU_ACCOUNTING
241extern 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)
247extern void calculate_steal_time(void); 241extern void calculate_steal_time(void);
248extern void snapshot_timebases(void); 242extern 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
254extern void secondary_cpu_time_init(void); 250extern void secondary_cpu_time_init(void);