diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-06 11:33:28 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-06 11:44:54 -0500 |
commit | 0db49b72bce26341274b74fd968501489a361ae3 (patch) | |
tree | cdb076827aefb38d719d4c42f8ef291c36072fa8 /arch/ia64 | |
parent | 35b740e4662ef386f0c60e1b60aaf5b44db9914c (diff) | |
parent | 1ac9bc6943edf7d181b4b1cc734981350d4f6bae (diff) |
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
sched/tracing: Add a new tracepoint for sleeptime
sched: Disable scheduler warnings during oopses
sched: Fix cgroup movement of waking process
sched: Fix cgroup movement of newly created process
sched: Fix cgroup movement of forking process
sched: Remove cfs bandwidth period check in tg_set_cfs_period()
sched: Fix load-balance lock-breaking
sched: Replace all_pinned with a generic flags field
sched: Only queue remote wakeups when crossing cache boundaries
sched: Add missing rcu_dereference() around ->real_parent usage
[S390] fix cputime overflow in uptime_proc_show
[S390] cputime: add sparse checking and cleanup
sched: Mark parent and real_parent as __rcu
sched, nohz: Fix missing RCU read lock
sched, nohz: Set the NOHZ_BALANCE_KICK flag for idle load balancer
sched, nohz: Fix the idle cpu check in nohz_idle_balance
sched: Use jump_labels for sched_feat
sched/accounting: Fix parameter passing in task_group_account_field
sched/accounting: Fix user/system tick double accounting
sched/accounting: Re-use scheduler statistics for the root cgroup
...
Fix up conflicts in
- arch/ia64/include/asm/cputime.h, include/asm-generic/cputime.h
usecs_to_cputime64() vs the sparse cleanups
- kernel/sched/fair.c, kernel/time/tick-sched.c
scheduler changes in multiple branches
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/include/asm/cputime.h | 72 |
1 files changed, 34 insertions, 38 deletions
diff --git a/arch/ia64/include/asm/cputime.h b/arch/ia64/include/asm/cputime.h index 5a274af31b2b..3deac956d325 100644 --- a/arch/ia64/include/asm/cputime.h +++ b/arch/ia64/include/asm/cputime.h | |||
@@ -26,60 +26,53 @@ | |||
26 | #include <linux/jiffies.h> | 26 | #include <linux/jiffies.h> |
27 | #include <asm/processor.h> | 27 | #include <asm/processor.h> |
28 | 28 | ||
29 | typedef u64 cputime_t; | 29 | typedef u64 __nocast cputime_t; |
30 | typedef u64 cputime64_t; | 30 | typedef u64 __nocast cputime64_t; |
31 | 31 | ||
32 | #define cputime_zero ((cputime_t)0) | ||
33 | #define cputime_one_jiffy jiffies_to_cputime(1) | 32 | #define cputime_one_jiffy jiffies_to_cputime(1) |
34 | #define cputime_max ((~((cputime_t)0) >> 1) - 1) | ||
35 | #define cputime_add(__a, __b) ((__a) + (__b)) | ||
36 | #define cputime_sub(__a, __b) ((__a) - (__b)) | ||
37 | #define cputime_div(__a, __n) ((__a) / (__n)) | ||
38 | #define cputime_halve(__a) ((__a) >> 1) | ||
39 | #define cputime_eq(__a, __b) ((__a) == (__b)) | ||
40 | #define cputime_gt(__a, __b) ((__a) > (__b)) | ||
41 | #define cputime_ge(__a, __b) ((__a) >= (__b)) | ||
42 | #define cputime_lt(__a, __b) ((__a) < (__b)) | ||
43 | #define cputime_le(__a, __b) ((__a) <= (__b)) | ||
44 | |||
45 | #define cputime64_zero ((cputime64_t)0) | ||
46 | #define cputime64_add(__a, __b) ((__a) + (__b)) | ||
47 | #define cputime64_sub(__a, __b) ((__a) - (__b)) | ||
48 | #define cputime_to_cputime64(__ct) (__ct) | ||
49 | 33 | ||
50 | /* | 34 | /* |
51 | * Convert cputime <-> jiffies (HZ) | 35 | * Convert cputime <-> jiffies (HZ) |
52 | */ | 36 | */ |
53 | #define cputime_to_jiffies(__ct) ((__ct) / (NSEC_PER_SEC / HZ)) | 37 | #define cputime_to_jiffies(__ct) \ |
54 | #define jiffies_to_cputime(__jif) ((__jif) * (NSEC_PER_SEC / HZ)) | 38 | ((__force u64)(__ct) / (NSEC_PER_SEC / HZ)) |
55 | #define cputime64_to_jiffies64(__ct) ((__ct) / (NSEC_PER_SEC / HZ)) | 39 | #define jiffies_to_cputime(__jif) \ |
56 | #define jiffies64_to_cputime64(__jif) ((__jif) * (NSEC_PER_SEC / HZ)) | 40 | (__force cputime_t)((__jif) * (NSEC_PER_SEC / HZ)) |
41 | #define cputime64_to_jiffies64(__ct) \ | ||
42 | ((__force u64)(__ct) / (NSEC_PER_SEC / HZ)) | ||
43 | #define jiffies64_to_cputime64(__jif) \ | ||
44 | (__force cputime64_t)((__jif) * (NSEC_PER_SEC / HZ)) | ||
57 | 45 | ||
58 | /* | 46 | /* |
59 | * Convert cputime <-> microseconds | 47 | * Convert cputime <-> microseconds |
60 | */ | 48 | */ |
61 | #define cputime_to_usecs(__ct) ((__ct) / NSEC_PER_USEC) | 49 | #define cputime_to_usecs(__ct) \ |
62 | #define usecs_to_cputime(__usecs) ((__usecs) * NSEC_PER_USEC) | 50 | ((__force u64)(__ct) / NSEC_PER_USEC) |
63 | #define usecs_to_cputime64(__usecs) usecs_to_cputime(__usecs) | 51 | #define usecs_to_cputime(__usecs) \ |
52 | (__force cputime_t)((__usecs) * NSEC_PER_USEC) | ||
53 | #define usecs_to_cputime64(__usecs) \ | ||
54 | (__force cputime64_t)((__usecs) * NSEC_PER_USEC) | ||
64 | 55 | ||
65 | /* | 56 | /* |
66 | * Convert cputime <-> seconds | 57 | * Convert cputime <-> seconds |
67 | */ | 58 | */ |
68 | #define cputime_to_secs(__ct) ((__ct) / NSEC_PER_SEC) | 59 | #define cputime_to_secs(__ct) \ |
69 | #define secs_to_cputime(__secs) ((__secs) * NSEC_PER_SEC) | 60 | ((__force u64)(__ct) / NSEC_PER_SEC) |
61 | #define secs_to_cputime(__secs) \ | ||
62 | (__force cputime_t)((__secs) * NSEC_PER_SEC) | ||
70 | 63 | ||
71 | /* | 64 | /* |
72 | * Convert cputime <-> timespec (nsec) | 65 | * Convert cputime <-> timespec (nsec) |
73 | */ | 66 | */ |
74 | static inline cputime_t timespec_to_cputime(const struct timespec *val) | 67 | static inline cputime_t timespec_to_cputime(const struct timespec *val) |
75 | { | 68 | { |
76 | cputime_t ret = val->tv_sec * NSEC_PER_SEC; | 69 | u64 ret = val->tv_sec * NSEC_PER_SEC + val->tv_nsec; |
77 | return (ret + val->tv_nsec); | 70 | return (__force cputime_t) ret; |
78 | } | 71 | } |
79 | static inline void cputime_to_timespec(const cputime_t ct, struct timespec *val) | 72 | static inline void cputime_to_timespec(const cputime_t ct, struct timespec *val) |
80 | { | 73 | { |
81 | val->tv_sec = ct / NSEC_PER_SEC; | 74 | val->tv_sec = (__force u64) ct / NSEC_PER_SEC; |
82 | val->tv_nsec = ct % NSEC_PER_SEC; | 75 | val->tv_nsec = (__force u64) ct % NSEC_PER_SEC; |
83 | } | 76 | } |
84 | 77 | ||
85 | /* | 78 | /* |
@@ -87,25 +80,28 @@ static inline void cputime_to_timespec(const cputime_t ct, struct timespec *val) | |||
87 | */ | 80 | */ |
88 | static inline cputime_t timeval_to_cputime(struct timeval *val) | 81 | static inline cputime_t timeval_to_cputime(struct timeval *val) |
89 | { | 82 | { |
90 | cputime_t ret = val->tv_sec * NSEC_PER_SEC; | 83 | u64 ret = val->tv_sec * NSEC_PER_SEC + val->tv_usec * NSEC_PER_USEC; |
91 | return (ret + val->tv_usec * NSEC_PER_USEC); | 84 | return (__force cputime_t) ret; |
92 | } | 85 | } |
93 | static inline void cputime_to_timeval(const cputime_t ct, struct timeval *val) | 86 | static inline void cputime_to_timeval(const cputime_t ct, struct timeval *val) |
94 | { | 87 | { |
95 | val->tv_sec = ct / NSEC_PER_SEC; | 88 | val->tv_sec = (__force u64) ct / NSEC_PER_SEC; |
96 | val->tv_usec = (ct % NSEC_PER_SEC) / NSEC_PER_USEC; | 89 | val->tv_usec = ((__force u64) ct % NSEC_PER_SEC) / NSEC_PER_USEC; |
97 | } | 90 | } |
98 | 91 | ||
99 | /* | 92 | /* |
100 | * Convert cputime <-> clock (USER_HZ) | 93 | * Convert cputime <-> clock (USER_HZ) |
101 | */ | 94 | */ |
102 | #define cputime_to_clock_t(__ct) ((__ct) / (NSEC_PER_SEC / USER_HZ)) | 95 | #define cputime_to_clock_t(__ct) \ |
103 | #define clock_t_to_cputime(__x) ((__x) * (NSEC_PER_SEC / USER_HZ)) | 96 | ((__force u64)(__ct) / (NSEC_PER_SEC / USER_HZ)) |
97 | #define clock_t_to_cputime(__x) \ | ||
98 | (__force cputime_t)((__x) * (NSEC_PER_SEC / USER_HZ)) | ||
104 | 99 | ||
105 | /* | 100 | /* |
106 | * Convert cputime64 to clock. | 101 | * Convert cputime64 to clock. |
107 | */ | 102 | */ |
108 | #define cputime64_to_clock_t(__ct) cputime_to_clock_t((cputime_t)__ct) | 103 | #define cputime64_to_clock_t(__ct) \ |
104 | cputime_to_clock_t((__force cputime_t)__ct) | ||
109 | 105 | ||
110 | #endif /* CONFIG_VIRT_CPU_ACCOUNTING */ | 106 | #endif /* CONFIG_VIRT_CPU_ACCOUNTING */ |
111 | #endif /* __IA64_CPUTIME_H */ | 107 | #endif /* __IA64_CPUTIME_H */ |