|
@@ -8,6 +8,8 @@
|
|
|
|
|
|
#include <linux/clockchips.h>
|
|
|
#include <linux/irqflags.h>
|
|
|
+#include <linux/percpu.h>
|
|
|
+#include <linux/hrtimer.h>
|
|
|
|
|
|
#ifdef CONFIG_GENERIC_CLOCKEVENTS
|
|
|
|
|
@@ -122,13 +124,26 @@ static inline int tick_oneshot_mode_active(void) { return 0; }
|
|
|
#endif /* !CONFIG_GENERIC_CLOCKEVENTS */
|
|
|
|
|
|
# ifdef CONFIG_NO_HZ
|
|
|
+DECLARE_PER_CPU(struct tick_sched, tick_cpu_sched);
|
|
|
+
|
|
|
+static inline int tick_nohz_tick_stopped(void)
|
|
|
+{
|
|
|
+ return __this_cpu_read(tick_cpu_sched.tick_stopped);
|
|
|
+}
|
|
|
+
|
|
|
extern void tick_nohz_idle_enter(void);
|
|
|
extern void tick_nohz_idle_exit(void);
|
|
|
extern void tick_nohz_irq_exit(void);
|
|
|
extern ktime_t tick_nohz_get_sleep_length(void);
|
|
|
extern u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time);
|
|
|
extern u64 get_cpu_iowait_time_us(int cpu, u64 *last_update_time);
|
|
|
-# else
|
|
|
+
|
|
|
+# else /* !CONFIG_NO_HZ */
|
|
|
+static inline int tick_nohz_tick_stopped(void)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static inline void tick_nohz_idle_enter(void) { }
|
|
|
static inline void tick_nohz_idle_exit(void) { }
|
|
|
|