diff options
| -rw-r--r-- | include/linux/tick.h | 20 | ||||
| -rw-r--r-- | kernel/time/tick-sched.c | 8 |
2 files changed, 20 insertions, 8 deletions
diff --git a/include/linux/tick.h b/include/linux/tick.h index c60b079e1b37..a7ef1d6fceb6 100644 --- a/include/linux/tick.h +++ b/include/linux/tick.h | |||
| @@ -180,20 +180,32 @@ static inline bool tick_nohz_full_cpu(int cpu) | |||
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | extern void tick_nohz_init(void); | 182 | extern void tick_nohz_init(void); |
| 183 | extern void tick_nohz_full_check(void); | 183 | extern void __tick_nohz_full_check(void); |
| 184 | extern void tick_nohz_full_kick(void); | 184 | extern void tick_nohz_full_kick(void); |
| 185 | extern void tick_nohz_full_kick_all(void); | 185 | extern void tick_nohz_full_kick_all(void); |
| 186 | extern void tick_nohz_task_switch(struct task_struct *tsk); | 186 | extern void __tick_nohz_task_switch(struct task_struct *tsk); |
| 187 | #else | 187 | #else |
| 188 | static inline void tick_nohz_init(void) { } | 188 | static inline void tick_nohz_init(void) { } |
| 189 | static inline bool tick_nohz_full_enabled(void) { return false; } | 189 | static inline bool tick_nohz_full_enabled(void) { return false; } |
| 190 | static inline bool tick_nohz_full_cpu(int cpu) { return false; } | 190 | static inline bool tick_nohz_full_cpu(int cpu) { return false; } |
| 191 | static inline void tick_nohz_full_check(void) { } | 191 | static inline void __tick_nohz_full_check(void) { } |
| 192 | static inline void tick_nohz_full_kick(void) { } | 192 | static inline void tick_nohz_full_kick(void) { } |
| 193 | static inline void tick_nohz_full_kick_all(void) { } | 193 | static inline void tick_nohz_full_kick_all(void) { } |
| 194 | static inline void tick_nohz_task_switch(struct task_struct *tsk) { } | 194 | static inline void __tick_nohz_task_switch(struct task_struct *tsk) { } |
| 195 | #endif | 195 | #endif |
| 196 | 196 | ||
| 197 | static inline void tick_nohz_full_check(void) | ||
| 198 | { | ||
| 199 | if (tick_nohz_full_enabled()) | ||
| 200 | __tick_nohz_full_check(); | ||
| 201 | } | ||
| 202 | |||
| 203 | static inline void tick_nohz_task_switch(struct task_struct *tsk) | ||
| 204 | { | ||
| 205 | if (tick_nohz_full_enabled()) | ||
| 206 | __tick_nohz_task_switch(tsk); | ||
| 207 | } | ||
| 208 | |||
| 197 | 209 | ||
| 198 | # ifdef CONFIG_CPU_IDLE_GOV_MENU | 210 | # ifdef CONFIG_CPU_IDLE_GOV_MENU |
| 199 | extern void menu_hrtimer_cancel(void); | 211 | extern void menu_hrtimer_cancel(void); |
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index 0b7887389bd2..0ff6ae710161 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c | |||
| @@ -198,7 +198,7 @@ static void tick_nohz_restart_sched_tick(struct tick_sched *ts, ktime_t now); | |||
| 198 | * Re-evaluate the need for the tick on the current CPU | 198 | * Re-evaluate the need for the tick on the current CPU |
| 199 | * and restart it if necessary. | 199 | * and restart it if necessary. |
| 200 | */ | 200 | */ |
| 201 | void tick_nohz_full_check(void) | 201 | void __tick_nohz_full_check(void) |
| 202 | { | 202 | { |
| 203 | struct tick_sched *ts = &__get_cpu_var(tick_cpu_sched); | 203 | struct tick_sched *ts = &__get_cpu_var(tick_cpu_sched); |
| 204 | 204 | ||
| @@ -212,7 +212,7 @@ void tick_nohz_full_check(void) | |||
| 212 | 212 | ||
| 213 | static void nohz_full_kick_work_func(struct irq_work *work) | 213 | static void nohz_full_kick_work_func(struct irq_work *work) |
| 214 | { | 214 | { |
| 215 | tick_nohz_full_check(); | 215 | __tick_nohz_full_check(); |
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = { | 218 | static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = { |
| @@ -231,7 +231,7 @@ void tick_nohz_full_kick(void) | |||
| 231 | 231 | ||
| 232 | static void nohz_full_kick_ipi(void *info) | 232 | static void nohz_full_kick_ipi(void *info) |
| 233 | { | 233 | { |
| 234 | tick_nohz_full_check(); | 234 | __tick_nohz_full_check(); |
| 235 | } | 235 | } |
| 236 | 236 | ||
| 237 | /* | 237 | /* |
| @@ -254,7 +254,7 @@ void tick_nohz_full_kick_all(void) | |||
| 254 | * It might need the tick due to per task/process properties: | 254 | * It might need the tick due to per task/process properties: |
| 255 | * perf events, posix cpu timers, ... | 255 | * perf events, posix cpu timers, ... |
| 256 | */ | 256 | */ |
| 257 | void tick_nohz_task_switch(struct task_struct *tsk) | 257 | void __tick_nohz_task_switch(struct task_struct *tsk) |
| 258 | { | 258 | { |
| 259 | unsigned long flags; | 259 | unsigned long flags; |
| 260 | 260 | ||
