diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2017-01-05 12:11:50 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-01-14 03:54:13 -0500 |
commit | c8d7dabf8f91fadd265e6eb87afb201d14ea299b (patch) | |
tree | 8e271048be7c1ed9d94e45572eb4ee45e77f6b20 | |
parent | b7394a5f4ce9542666cc68422c3594ea854adc2c (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.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/time.c | 6 | ||||
-rw-r--r-- | arch/s390/kernel/vtime.c | 2 | ||||
-rw-r--r-- | include/linux/kernel_stat.h | 2 | ||||
-rw-r--r-- | include/linux/vtime.h | 7 | ||||
-rw-r--r-- | kernel/sched/cputime.c | 4 |
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 | ||
62 | extern cputime_t cycle_to_cputime(u64 cyc); | 62 | extern cputime_t cycle_to_cputime(u64 cyc); |
63 | 63 | ||
64 | void vtime_account_user(struct task_struct *tsk) | 64 | void 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 | */ |
393 | void vtime_account_user(struct task_struct *tsk) | 391 | void 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 | */ |
217 | void vtime_account_user(struct task_struct *tsk) | 217 | void 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 |
90 | static inline void account_process_tick(struct task_struct *tsk, int user) | 90 | static 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 |
95 | extern void account_process_tick(struct task_struct *, int user); | 95 | extern 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 | ||
59 | extern void vtime_account_system(struct task_struct *tsk); | 59 | extern void vtime_account_system(struct task_struct *tsk); |
60 | extern void vtime_account_idle(struct task_struct *tsk); | 60 | extern void vtime_account_idle(struct task_struct *tsk); |
61 | extern void vtime_account_user(struct task_struct *tsk); | ||
62 | 61 | ||
63 | #else /* !CONFIG_VIRT_CPU_ACCOUNTING */ | 62 | #else /* !CONFIG_VIRT_CPU_ACCOUNTING */ |
64 | 63 | ||
65 | static inline void vtime_task_switch(struct task_struct *prev) { } | 64 | static inline void vtime_task_switch(struct task_struct *prev) { } |
66 | static inline void vtime_account_system(struct task_struct *tsk) { } | 65 | static inline void vtime_account_system(struct task_struct *tsk) { } |
67 | static 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 |
71 | extern void arch_vtime_task_switch(struct task_struct *tsk); | 69 | extern void arch_vtime_task_switch(struct task_struct *tsk); |
70 | extern void vtime_account_user(struct task_struct *tsk); | ||
72 | extern void vtime_user_enter(struct task_struct *tsk); | 71 | extern void vtime_user_enter(struct task_struct *tsk); |
73 | 72 | ||
74 | static inline void vtime_user_exit(struct task_struct *tsk) | 73 | static inline void vtime_user_exit(struct task_struct *tsk) |
75 | { | 74 | { |
76 | vtime_account_user(tsk); | 75 | vtime_account_user(tsk); |
77 | } | 76 | } |
77 | |||
78 | extern void vtime_guest_enter(struct task_struct *tsk); | 78 | extern void vtime_guest_enter(struct task_struct *tsk); |
79 | extern void vtime_guest_exit(struct task_struct *tsk); | 79 | extern void vtime_guest_exit(struct task_struct *tsk); |
80 | extern void vtime_init_idle(struct task_struct *tsk, int cpu); | 80 | extern void vtime_init_idle(struct task_struct *tsk, int cpu); |
81 | #else /* !CONFIG_VIRT_CPU_ACCOUNTING_GEN */ | 81 | #else /* !CONFIG_VIRT_CPU_ACCOUNTING_GEN */ |
82 | static inline void vtime_account_user(struct task_struct *tsk) { } | ||
82 | static inline void vtime_user_enter(struct task_struct *tsk) { } | 83 | static inline void vtime_user_enter(struct task_struct *tsk) { } |
83 | static inline void vtime_user_exit(struct task_struct *tsk) { } | 84 | static inline void vtime_user_exit(struct task_struct *tsk) { } |
84 | static inline void vtime_guest_enter(struct task_struct *tsk) { } | 85 | static 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 | } |
97 | extern void vtime_flush(struct task_struct *tsk); | ||
96 | #else /* !CONFIG_VIRT_CPU_ACCOUNTING_NATIVE */ | 98 | #else /* !CONFIG_VIRT_CPU_ACCOUNTING_NATIVE */ |
97 | static inline void vtime_account_irq_enter(struct task_struct *tsk) { } | 99 | static inline void vtime_account_irq_enter(struct task_struct *tsk) { } |
98 | static inline void vtime_account_irq_exit(struct task_struct *tsk) { } | 100 | static inline void vtime_account_irq_exit(struct task_struct *tsk) { } |
101 | static 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 |