diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2012-11-13 23:51:06 +0100 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2012-11-19 16:41:21 +0100 |
commit | bcebdf846522056a84ba0b0cba5f5413868c9394 (patch) | |
tree | 76e007a63351abe84a9713e3b182463c230d1053 /include/linux/kernel_stat.h | |
parent | fd25b4c2f226de818e1d2b71e3e681d28bcaf5ba (diff) | |
download | linux-3.10-bcebdf846522056a84ba0b0cba5f5413868c9394.tar.gz linux-3.10-bcebdf846522056a84ba0b0cba5f5413868c9394.tar.bz2 linux-3.10-bcebdf846522056a84ba0b0cba5f5413868c9394.zip |
vtime: Explicitly account pending user time on process tick
All vtime implementations just flush the user time on process
tick. Consolidate that in generic code by calling a user time
accounting helper. This avoids an indirect call in ia64 and
prepare to also consolidate vtime context switch code.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
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 'include/linux/kernel_stat.h')
-rw-r--r-- | include/linux/kernel_stat.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h index 1865b1f2977..66b70780e91 100644 --- a/include/linux/kernel_stat.h +++ b/include/linux/kernel_stat.h @@ -127,7 +127,15 @@ extern void account_system_time(struct task_struct *, int, cputime_t, cputime_t) extern void account_steal_time(cputime_t); extern void account_idle_time(cputime_t); +#ifdef CONFIG_VIRT_CPU_ACCOUNTING +static inline void account_process_tick(struct task_struct *tsk, int user) +{ + vtime_account_user(tsk); +} +#else extern void account_process_tick(struct task_struct *, int user); +#endif + extern void account_steal_ticks(unsigned long ticks); extern void account_idle_ticks(unsigned long ticks); |