aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2017-01-05 12:11:50 -0500
committerIngo Molnar <mingo@kernel.org>2017-01-14 03:54:13 -0500
commitc8d7dabf8f91fadd265e6eb87afb201d14ea299b (patch)
tree8e271048be7c1ed9d94e45572eb4ee45e77f6b20
parentb7394a5f4ce9542666cc68422c3594ea854adc2c (diff)
sched/cputime: Rename vtime_account_user() to vtime_flush()
CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y used to accumulate user time and account it on ticks and context switches only through the vtime_account_user() function. Now this model has been generalized on the 3 archs for all kind of cputime (system, irq, ...) and all the cputime flushing happens under vtime_account_user(). So let's rename this function to better reflect its new role. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Rik van Riel <riel@redhat.com> Cc: Stanislaw Gruszka <sgruszka@redhat.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Wanpeng Li <wanpeng.li@hotmail.com> Link: http://lkml.kernel.org/r/1483636310-6557-11-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--arch/ia64/kernel/time.c2
-rw-r--r--arch/powerpc/kernel/time.c6
-rw-r--r--arch/s390/kernel/vtime.c2
-rw-r--r--include/linux/kernel_stat.h2
-rw-r--r--include/linux/vtime.h7
-rw-r--r--kernel/sched/cputime.c4
6 files changed, 11 insertions, 12 deletions
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 37f1b315d9b6..d040f12ea9f9 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -61,7 +61,7 @@ static struct clocksource *itc_clocksource;
61 61
62extern cputime_t cycle_to_cputime(u64 cyc); 62extern cputime_t cycle_to_cputime(u64 cyc);
63 63
64void vtime_account_user(struct task_struct *tsk) 64void vtime_flush(struct task_struct *tsk)
65{ 65{
66 struct thread_info *ti = task_thread_info(tsk); 66 struct thread_info *ti = task_thread_info(tsk);
67 cputime_t delta; 67 cputime_t delta;
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 4255e6930ac1..02e97305d22b 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -382,15 +382,13 @@ void vtime_account_idle(struct task_struct *tsk)
382} 382}
383 383
384/* 384/*
385 * Transfer the user time accumulated in the paca 385 * Account the whole cputime accumulated in the paca
386 * by the exception entry and exit code to the generic
387 * process user time records.
388 * Must be called with interrupts disabled. 386 * Must be called with interrupts disabled.
389 * Assumes that vtime_account_system/idle() has been called 387 * Assumes that vtime_account_system/idle() has been called
390 * recently (i.e. since the last entry from usermode) so that 388 * recently (i.e. since the last entry from usermode) so that
391 * get_paca()->user_time_scaled is up to date. 389 * get_paca()->user_time_scaled is up to date.
392 */ 390 */
393void vtime_account_user(struct task_struct *tsk) 391void vtime_flush(struct task_struct *tsk)
394{ 392{
395 struct cpu_accounting_data *acct = get_accounting(tsk); 393 struct cpu_accounting_data *acct = get_accounting(tsk);
396 394
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index 1a53e0bdc90a..0a9e5d67547d 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -214,7 +214,7 @@ void vtime_task_switch(struct task_struct *prev)
214 * accounting system time in order to correctly compute 214 * accounting system time in order to correctly compute
215 * the stolen time accounting. 215 * the stolen time accounting.
216 */ 216 */
217void vtime_account_user(struct task_struct *tsk) 217void vtime_flush(struct task_struct *tsk)
218{ 218{
219 if (do_account_vtime(tsk)) 219 if (do_account_vtime(tsk))
220 virt_timer_expire(); 220 virt_timer_expire();
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h
index cfd6c0c6d4e8..c3e38ded2d73 100644
--- a/include/linux/kernel_stat.h
+++ b/include/linux/kernel_stat.h
@@ -89,7 +89,7 @@ extern void account_idle_time(cputime_t);
89#ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE 89#ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
90static inline void account_process_tick(struct task_struct *tsk, int user) 90static inline void account_process_tick(struct task_struct *tsk, int user)
91{ 91{
92 vtime_account_user(tsk); 92 vtime_flush(tsk);
93} 93}
94#else 94#else
95extern void account_process_tick(struct task_struct *, int user); 95extern void account_process_tick(struct task_struct *, int user);
diff --git a/include/linux/vtime.h b/include/linux/vtime.h
index aa9bfea8804a..0681fe25abeb 100644
--- a/include/linux/vtime.h
+++ b/include/linux/vtime.h
@@ -58,27 +58,28 @@ static inline void vtime_task_switch(struct task_struct *prev)
58 58
59extern void vtime_account_system(struct task_struct *tsk); 59extern void vtime_account_system(struct task_struct *tsk);
60extern void vtime_account_idle(struct task_struct *tsk); 60extern void vtime_account_idle(struct task_struct *tsk);
61extern void vtime_account_user(struct task_struct *tsk);
62 61
63#else /* !CONFIG_VIRT_CPU_ACCOUNTING */ 62#else /* !CONFIG_VIRT_CPU_ACCOUNTING */
64 63
65static inline void vtime_task_switch(struct task_struct *prev) { } 64static inline void vtime_task_switch(struct task_struct *prev) { }
66static inline void vtime_account_system(struct task_struct *tsk) { } 65static inline void vtime_account_system(struct task_struct *tsk) { }
67static inline void vtime_account_user(struct task_struct *tsk) { }
68#endif /* !CONFIG_VIRT_CPU_ACCOUNTING */ 66#endif /* !CONFIG_VIRT_CPU_ACCOUNTING */
69 67
70#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN 68#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
71extern void arch_vtime_task_switch(struct task_struct *tsk); 69extern void arch_vtime_task_switch(struct task_struct *tsk);
70extern void vtime_account_user(struct task_struct *tsk);
72extern void vtime_user_enter(struct task_struct *tsk); 71extern void vtime_user_enter(struct task_struct *tsk);
73 72
74static inline void vtime_user_exit(struct task_struct *tsk) 73static inline void vtime_user_exit(struct task_struct *tsk)
75{ 74{
76 vtime_account_user(tsk); 75 vtime_account_user(tsk);
77} 76}
77
78extern void vtime_guest_enter(struct task_struct *tsk); 78extern void vtime_guest_enter(struct task_struct *tsk);
79extern void vtime_guest_exit(struct task_struct *tsk); 79extern void vtime_guest_exit(struct task_struct *tsk);
80extern void vtime_init_idle(struct task_struct *tsk, int cpu); 80extern void vtime_init_idle(struct task_struct *tsk, int cpu);
81#else /* !CONFIG_VIRT_CPU_ACCOUNTING_GEN */ 81#else /* !CONFIG_VIRT_CPU_ACCOUNTING_GEN */
82static inline void vtime_account_user(struct task_struct *tsk) { }
82static inline void vtime_user_enter(struct task_struct *tsk) { } 83static inline void vtime_user_enter(struct task_struct *tsk) { }
83static inline void vtime_user_exit(struct task_struct *tsk) { } 84static inline void vtime_user_exit(struct task_struct *tsk) { }
84static inline void vtime_guest_enter(struct task_struct *tsk) { } 85static inline void vtime_guest_enter(struct task_struct *tsk) { }
@@ -93,9 +94,11 @@ static inline void vtime_account_irq_exit(struct task_struct *tsk)
93 /* On hard|softirq exit we always account to hard|softirq cputime */ 94 /* On hard|softirq exit we always account to hard|softirq cputime */
94 vtime_account_system(tsk); 95 vtime_account_system(tsk);
95} 96}
97extern void vtime_flush(struct task_struct *tsk);
96#else /* !CONFIG_VIRT_CPU_ACCOUNTING_NATIVE */ 98#else /* !CONFIG_VIRT_CPU_ACCOUNTING_NATIVE */
97static inline void vtime_account_irq_enter(struct task_struct *tsk) { } 99static inline void vtime_account_irq_enter(struct task_struct *tsk) { }
98static inline void vtime_account_irq_exit(struct task_struct *tsk) { } 100static inline void vtime_account_irq_exit(struct task_struct *tsk) { }
101static inline void vtime_flush(struct task_struct *tsk) { }
99#endif 102#endif
100 103
101 104
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 5813ee4a5168..f7c14cc71d06 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -437,9 +437,7 @@ void vtime_common_task_switch(struct task_struct *prev)
437 else 437 else
438 vtime_account_system(prev); 438 vtime_account_system(prev);
439 439
440#ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE 440 vtime_flush(prev);
441 vtime_account_user(prev);
442#endif
443 arch_vtime_task_switch(prev); 441 arch_vtime_task_switch(prev);
444} 442}
445#endif 443#endif