diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2012-10-24 12:05:51 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2012-10-29 16:31:31 -0400 |
commit | 11113334d1c5dd5355c86e531c29f1202a855c86 (patch) | |
tree | 259c7c3344733444ca39263b1a79f40b243b155f /arch | |
parent | dcbf832e5823156e8f155359b47bd108cac8ad68 (diff) |
vtime: Make vtime_account_system() irqsafe
vtime_account_system() currently has only one caller with
vtime_account() which is irq safe.
Now we are going to call it from other places like kvm where
irqs are not always disabled by the time we account the cputime.
So let's make it irqsafe. The arch implementation part is now
prefixed with "__".
vtime_account_idle() arch implementation is prefixed accordingly
to stay consistent.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/kernel/time.c | 8 | ||||
-rw-r--r-- | arch/powerpc/kernel/time.c | 4 | ||||
-rw-r--r-- | arch/s390/kernel/vtime.c | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index f6388216080d..5e4850305d3f 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -106,9 +106,9 @@ void vtime_task_switch(struct task_struct *prev) | |||
106 | struct thread_info *ni = task_thread_info(current); | 106 | struct thread_info *ni = task_thread_info(current); |
107 | 107 | ||
108 | if (idle_task(smp_processor_id()) != prev) | 108 | if (idle_task(smp_processor_id()) != prev) |
109 | vtime_account_system(prev); | 109 | __vtime_account_system(prev); |
110 | else | 110 | else |
111 | vtime_account_idle(prev); | 111 | __vtime_account_idle(prev); |
112 | 112 | ||
113 | vtime_account_user(prev); | 113 | vtime_account_user(prev); |
114 | 114 | ||
@@ -135,14 +135,14 @@ static cputime_t vtime_delta(struct task_struct *tsk) | |||
135 | return delta_stime; | 135 | return delta_stime; |
136 | } | 136 | } |
137 | 137 | ||
138 | void vtime_account_system(struct task_struct *tsk) | 138 | void __vtime_account_system(struct task_struct *tsk) |
139 | { | 139 | { |
140 | cputime_t delta = vtime_delta(tsk); | 140 | cputime_t delta = vtime_delta(tsk); |
141 | 141 | ||
142 | account_system_time(tsk, 0, delta, delta); | 142 | account_system_time(tsk, 0, delta, delta); |
143 | } | 143 | } |
144 | 144 | ||
145 | void vtime_account_idle(struct task_struct *tsk) | 145 | void __vtime_account_idle(struct task_struct *tsk) |
146 | { | 146 | { |
147 | account_idle_time(vtime_delta(tsk)); | 147 | account_idle_time(vtime_delta(tsk)); |
148 | } | 148 | } |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index ce4cb772dc78..0db456f30d45 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -336,7 +336,7 @@ static u64 vtime_delta(struct task_struct *tsk, | |||
336 | return delta; | 336 | return delta; |
337 | } | 337 | } |
338 | 338 | ||
339 | void vtime_account_system(struct task_struct *tsk) | 339 | void __vtime_account_system(struct task_struct *tsk) |
340 | { | 340 | { |
341 | u64 delta, sys_scaled, stolen; | 341 | u64 delta, sys_scaled, stolen; |
342 | 342 | ||
@@ -346,7 +346,7 @@ void vtime_account_system(struct task_struct *tsk) | |||
346 | account_steal_time(stolen); | 346 | account_steal_time(stolen); |
347 | } | 347 | } |
348 | 348 | ||
349 | void vtime_account_idle(struct task_struct *tsk) | 349 | void __vtime_account_idle(struct task_struct *tsk) |
350 | { | 350 | { |
351 | u64 delta, sys_scaled, stolen; | 351 | u64 delta, sys_scaled, stolen; |
352 | 352 | ||
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index 790334427895..783e988c4e1e 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c | |||
@@ -140,6 +140,10 @@ void vtime_account(struct task_struct *tsk) | |||
140 | } | 140 | } |
141 | EXPORT_SYMBOL_GPL(vtime_account); | 141 | EXPORT_SYMBOL_GPL(vtime_account); |
142 | 142 | ||
143 | void __vtime_account_system(struct task_struct *tsk) | ||
144 | __attribute__((alias("vtime_account"))); | ||
145 | EXPORT_SYMBOL_GPL(__vtime_account_system); | ||
146 | |||
143 | void __kprobes vtime_stop_cpu(void) | 147 | void __kprobes vtime_stop_cpu(void) |
144 | { | 148 | { |
145 | struct s390_idle_data *idle = &__get_cpu_var(s390_idle); | 149 | struct s390_idle_data *idle = &__get_cpu_var(s390_idle); |