| .. | .. |
|---|
| 24 | 24 | * struct tick_sched - sched tick emulation and no idle tick control/stats |
|---|
| 25 | 25 | * @sched_timer: hrtimer to schedule the periodic tick in high |
|---|
| 26 | 26 | * resolution mode |
|---|
| 27 | + * @check_clocks: Notification mechanism about clocksource changes |
|---|
| 28 | + * @nohz_mode: Mode - one state of tick_nohz_mode |
|---|
| 29 | + * @inidle: Indicator that the CPU is in the tick idle mode |
|---|
| 30 | + * @tick_stopped: Indicator that the idle tick has been stopped |
|---|
| 31 | + * @idle_active: Indicator that the CPU is actively in the tick idle mode; |
|---|
| 32 | + * it is resetted during irq handling phases. |
|---|
| 33 | + * @do_timer_lst: CPU was the last one doing do_timer before going idle |
|---|
| 34 | + * @got_idle_tick: Tick timer function has run with @inidle set |
|---|
| 27 | 35 | * @last_tick: Store the last tick expiry time when the tick |
|---|
| 28 | 36 | * timer is modified for nohz sleeps. This is necessary |
|---|
| 29 | 37 | * to resume the tick timer operation in the timeline |
|---|
| 30 | 38 | * when the CPU returns from nohz sleep. |
|---|
| 31 | 39 | * @next_tick: Next tick to be fired when in dynticks mode. |
|---|
| 32 | | - * @tick_stopped: Indicator that the idle tick has been stopped |
|---|
| 33 | 40 | * @idle_jiffies: jiffies at the entry to idle for idle time accounting |
|---|
| 34 | 41 | * @idle_calls: Total number of idle calls |
|---|
| 35 | 42 | * @idle_sleeps: Number of idle calls, where the sched tick was stopped |
|---|
| .. | .. |
|---|
| 40 | 47 | * @iowait_sleeptime: Sum of the time slept in idle with sched tick stopped, with IO outstanding |
|---|
| 41 | 48 | * @timer_expires: Anticipated timer expiration time (in case sched tick is stopped) |
|---|
| 42 | 49 | * @timer_expires_base: Base time clock monotonic for @timer_expires |
|---|
| 43 | | - * @do_timer_lst: CPU was the last one doing do_timer before going idle |
|---|
| 44 | | - * @got_idle_tick: Tick timer function has run with @inidle set |
|---|
| 50 | + * @next_timer: Expiry time of next expiring timer for debugging purpose only |
|---|
| 51 | + * @tick_dep_mask: Tick dependency mask - is set, if someone needs the tick |
|---|
| 52 | + * @last_tick_jiffies: Value of jiffies seen on last tick |
|---|
| 53 | + * @stalled_jiffies: Number of stalled jiffies detected across ticks |
|---|
| 45 | 54 | */ |
|---|
| 46 | 55 | struct tick_sched { |
|---|
| 47 | 56 | struct hrtimer sched_timer; |
|---|
| .. | .. |
|---|
| 70 | 79 | u64 next_timer; |
|---|
| 71 | 80 | ktime_t idle_expires; |
|---|
| 72 | 81 | atomic_t tick_dep_mask; |
|---|
| 82 | + unsigned long last_tick_jiffies; |
|---|
| 83 | + unsigned int stalled_jiffies; |
|---|
| 73 | 84 | }; |
|---|
| 74 | 85 | |
|---|
| 75 | 86 | extern struct tick_sched *tick_get_tick_sched(int cpu); |
|---|