diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-01-14 16:21:03 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-14 21:27:09 -0500 |
commit | 1f1c12afe5c3e0ef901eec12dee09df4947462ee (patch) | |
tree | 157f01441ef5ddc0810d0bfebca4667c21254529 /include | |
parent | bcc132651d384ad115a275868effb49c64b348ce (diff) |
[PATCH] s390: cputime misaccounting
finish_arch_switch needs to update the user cpu time as well, not just the
system cpu time. Otherwise the partial user cpu time of a process that is
stored in the lowcore will be (mis-)accounted to the next process.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-s390/system.h | 5 | ||||
-rw-r--r-- | include/linux/hardirq.h | 4 |
2 files changed, 3 insertions, 6 deletions
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h index c7c3a9ad593f..b2e65e8bf812 100644 --- a/include/asm-s390/system.h +++ b/include/asm-s390/system.h | |||
@@ -115,13 +115,14 @@ static inline void sched_cacheflush(void) | |||
115 | } | 115 | } |
116 | 116 | ||
117 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 117 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
118 | extern void account_user_vtime(struct task_struct *); | 118 | extern void account_vtime(struct task_struct *); |
119 | extern void account_tick_vtime(struct task_struct *); | ||
119 | extern void account_system_vtime(struct task_struct *); | 120 | extern void account_system_vtime(struct task_struct *); |
120 | #endif | 121 | #endif |
121 | 122 | ||
122 | #define finish_arch_switch(prev) do { \ | 123 | #define finish_arch_switch(prev) do { \ |
123 | set_fs(current->thread.mm_segment); \ | 124 | set_fs(current->thread.mm_segment); \ |
124 | account_system_vtime(prev); \ | 125 | account_vtime(prev); \ |
125 | } while (0) | 126 | } while (0) |
126 | 127 | ||
127 | #define nop() __asm__ __volatile__ ("nop") | 128 | #define nop() __asm__ __volatile__ ("nop") |
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 71d2b8a723b9..eab537091f2a 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
@@ -93,10 +93,6 @@ extern void synchronize_irq(unsigned int irq); | |||
93 | struct task_struct; | 93 | struct task_struct; |
94 | 94 | ||
95 | #ifndef CONFIG_VIRT_CPU_ACCOUNTING | 95 | #ifndef CONFIG_VIRT_CPU_ACCOUNTING |
96 | static inline void account_user_vtime(struct task_struct *tsk) | ||
97 | { | ||
98 | } | ||
99 | |||
100 | static inline void account_system_vtime(struct task_struct *tsk) | 96 | static inline void account_system_vtime(struct task_struct *tsk) |
101 | { | 97 | { |
102 | } | 98 | } |