aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/cputime.h8
-rw-r--r--include/asm-generic/cputime_nsecs.h8
-rw-r--r--include/linux/kernel_stat.h2
-rw-r--r--include/linux/vtime.h16
4 files changed, 32 insertions, 2 deletions
diff --git a/include/asm-generic/cputime.h b/include/asm-generic/cputime.h
index c6eddf50eaf9..51969436b8b8 100644
--- a/include/asm-generic/cputime.h
+++ b/include/asm-generic/cputime.h
@@ -4,6 +4,12 @@
4#include <linux/time.h> 4#include <linux/time.h>
5#include <linux/jiffies.h> 5#include <linux/jiffies.h>
6 6
7#include <asm-generic/cputime_jiffies.h> 7#ifndef CONFIG_VIRT_CPU_ACCOUNTING
8# include <asm-generic/cputime_jiffies.h>
9#endif
10
11#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
12# include <asm-generic/cputime_nsecs.h>
13#endif
8 14
9#endif 15#endif
diff --git a/include/asm-generic/cputime_nsecs.h b/include/asm-generic/cputime_nsecs.h
index c73d182f4751..b6485cafb7bd 100644
--- a/include/asm-generic/cputime_nsecs.h
+++ b/include/asm-generic/cputime_nsecs.h
@@ -26,6 +26,7 @@ typedef u64 __nocast cputime64_t;
26 */ 26 */
27#define cputime_to_jiffies(__ct) \ 27#define cputime_to_jiffies(__ct) \
28 ((__force u64)(__ct) / (NSEC_PER_SEC / HZ)) 28 ((__force u64)(__ct) / (NSEC_PER_SEC / HZ))
29#define cputime_to_scaled(__ct) (__ct)
29#define jiffies_to_cputime(__jif) \ 30#define jiffies_to_cputime(__jif) \
30 (__force cputime_t)((__jif) * (NSEC_PER_SEC / HZ)) 31 (__force cputime_t)((__jif) * (NSEC_PER_SEC / HZ))
31#define cputime64_to_jiffies64(__ct) \ 32#define cputime64_to_jiffies64(__ct) \
@@ -33,6 +34,13 @@ typedef u64 __nocast cputime64_t;
33#define jiffies64_to_cputime64(__jif) \ 34#define jiffies64_to_cputime64(__jif) \
34 (__force cputime64_t)((__jif) * (NSEC_PER_SEC / HZ)) 35 (__force cputime64_t)((__jif) * (NSEC_PER_SEC / HZ))
35 36
37
38/*
39 * Convert cputime <-> nanoseconds
40 */
41#define nsecs_to_cputime(__nsecs) ((__force u64)(__nsecs))
42
43
36/* 44/*
37 * Convert cputime <-> microseconds 45 * Convert cputime <-> microseconds
38 */ 46 */
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h
index 66b70780e910..ed5f6ed6eb77 100644
--- a/include/linux/kernel_stat.h
+++ b/include/linux/kernel_stat.h
@@ -127,7 +127,7 @@ extern void account_system_time(struct task_struct *, int, cputime_t, cputime_t)
127extern void account_steal_time(cputime_t); 127extern void account_steal_time(cputime_t);
128extern void account_idle_time(cputime_t); 128extern void account_idle_time(cputime_t);
129 129
130#ifdef CONFIG_VIRT_CPU_ACCOUNTING 130#ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
131static inline void account_process_tick(struct task_struct *tsk, int user) 131static inline void account_process_tick(struct task_struct *tsk, int user)
132{ 132{
133 vtime_account_user(tsk); 133 vtime_account_user(tsk);
diff --git a/include/linux/vtime.h b/include/linux/vtime.h
index ae30ab58431a..21ef703d1b25 100644
--- a/include/linux/vtime.h
+++ b/include/linux/vtime.h
@@ -14,9 +14,25 @@ extern void vtime_account(struct task_struct *tsk);
14static inline void vtime_task_switch(struct task_struct *prev) { } 14static inline void vtime_task_switch(struct task_struct *prev) { }
15static inline void vtime_account_system(struct task_struct *tsk) { } 15static inline void vtime_account_system(struct task_struct *tsk) { }
16static inline void vtime_account_system_irqsafe(struct task_struct *tsk) { } 16static inline void vtime_account_system_irqsafe(struct task_struct *tsk) { }
17static inline void vtime_account_user(struct task_struct *tsk) { }
17static inline void vtime_account(struct task_struct *tsk) { } 18static inline void vtime_account(struct task_struct *tsk) { }
18#endif 19#endif
19 20
21#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
22static inline void arch_vtime_task_switch(struct task_struct *tsk) { }
23static inline void vtime_user_enter(struct task_struct *tsk)
24{
25 vtime_account_system(tsk);
26}
27static inline void vtime_user_exit(struct task_struct *tsk)
28{
29 vtime_account_user(tsk);
30}
31#else
32static inline void vtime_user_enter(struct task_struct *tsk) { }
33static inline void vtime_user_exit(struct task_struct *tsk) { }
34#endif
35
20#ifdef CONFIG_IRQ_TIME_ACCOUNTING 36#ifdef CONFIG_IRQ_TIME_ACCOUNTING
21extern void irqtime_account_irq(struct task_struct *tsk); 37extern void irqtime_account_irq(struct task_struct *tsk);
22#else 38#else