diff options
author | Frederic Weisbecker <frederic@kernel.org> | 2018-04-06 04:32:37 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-04-09 11:54:57 +0200 |
commit | 2bc629a692a76b9ee3dab9c303e3f501bece66a4 (patch) | |
tree | 228053069ba53acb9f5e11d5d6c6cfbcc075e460 /kernel/time/tick-sched.h | |
parent | 87c9fe6ee495f78f36d39cb37f6a714444a093ee (diff) | |
download | lwn-2bc629a692a76b9ee3dab9c303e3f501bece66a4.tar.gz lwn-2bc629a692a76b9ee3dab9c303e3f501bece66a4.zip |
nohz: Gather tick_sched booleans under a common flag field
Optimize the space and leave plenty of room for further flags.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
[ rjw: Do not use __this_cpu_read() to access tick_stopped and add
got_idle_tick to avoid overloading inidle ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'kernel/time/tick-sched.h')
-rw-r--r-- | kernel/time/tick-sched.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/kernel/time/tick-sched.h b/kernel/time/tick-sched.h index 2b845f2c44b1..6de959a854b2 100644 --- a/kernel/time/tick-sched.h +++ b/kernel/time/tick-sched.h @@ -41,19 +41,24 @@ enum tick_nohz_mode { * @timer_expires: Anticipated timer expiration time (in case sched tick is stopped) * @timer_expires_base: Base time clock monotonic for @timer_expires * @do_timer_lst: CPU was the last one doing do_timer before going idle + * @got_idle_tick: Tick timer function has run with @inidle set */ struct tick_sched { struct hrtimer sched_timer; unsigned long check_clocks; enum tick_nohz_mode nohz_mode; + + unsigned int inidle : 1; + unsigned int tick_stopped : 1; + unsigned int idle_active : 1; + unsigned int do_timer_last : 1; + unsigned int got_idle_tick : 1; + ktime_t last_tick; ktime_t next_tick; - int inidle; - int tick_stopped; unsigned long idle_jiffies; unsigned long idle_calls; unsigned long idle_sleeps; - int idle_active; ktime_t idle_entrytime; ktime_t idle_waketime; ktime_t idle_exittime; @@ -64,7 +69,6 @@ struct tick_sched { u64 timer_expires_base; u64 next_timer; ktime_t idle_expires; - int do_timer_last; atomic_t tick_dep_mask; }; |