summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2018-04-06 08:59:13 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2018-04-09 05:54:57 -0400
commitff7de6203131e3d60cda60aeda12c69373ca5d43 (patch)
treeb1000c6a7860cb22bca0ac5132d46c5f021321ea /kernel
parent2bc629a692a76b9ee3dab9c303e3f501bece66a4 (diff)
nohz: Avoid duplication of code related to got_idle_tick
Move the code setting ts->got_idle_tick into tick_sched_do_timer() to avoid code duplication. No intentional changes in functionality. Suggested-by: Frederic Weisbecker <frederic@kernel.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/time/tick-sched.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index a9d5cc7406d3..956831cf6cfb 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -113,8 +113,7 @@ static ktime_t tick_init_jiffy_update(void)
113 return period; 113 return period;
114} 114}
115 115
116 116static void tick_sched_do_timer(struct tick_sched *ts, ktime_t now)
117static void tick_sched_do_timer(ktime_t now)
118{ 117{
119 int cpu = smp_processor_id(); 118 int cpu = smp_processor_id();
120 119
@@ -134,6 +133,9 @@ static void tick_sched_do_timer(ktime_t now)
134 /* Check, if the jiffies need an update */ 133 /* Check, if the jiffies need an update */
135 if (tick_do_timer_cpu == cpu) 134 if (tick_do_timer_cpu == cpu)
136 tick_do_update_jiffies64(now); 135 tick_do_update_jiffies64(now);
136
137 if (ts->inidle)
138 ts->got_idle_tick = 1;
137} 139}
138 140
139static void tick_sched_handle(struct tick_sched *ts, struct pt_regs *regs) 141static void tick_sched_handle(struct tick_sched *ts, struct pt_regs *regs)
@@ -1162,12 +1164,9 @@ static void tick_nohz_handler(struct clock_event_device *dev)
1162 struct pt_regs *regs = get_irq_regs(); 1164 struct pt_regs *regs = get_irq_regs();
1163 ktime_t now = ktime_get(); 1165 ktime_t now = ktime_get();
1164 1166
1165 if (ts->inidle)
1166 ts->got_idle_tick = 1;
1167
1168 dev->next_event = KTIME_MAX; 1167 dev->next_event = KTIME_MAX;
1169 1168
1170 tick_sched_do_timer(now); 1169 tick_sched_do_timer(ts, now);
1171 tick_sched_handle(ts, regs); 1170 tick_sched_handle(ts, regs);
1172 1171
1173 /* No need to reprogram if we are running tickless */ 1172 /* No need to reprogram if we are running tickless */
@@ -1262,10 +1261,7 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer)
1262 struct pt_regs *regs = get_irq_regs(); 1261 struct pt_regs *regs = get_irq_regs();
1263 ktime_t now = ktime_get(); 1262 ktime_t now = ktime_get();
1264 1263
1265 if (ts->inidle) 1264 tick_sched_do_timer(ts, now);
1266 ts->got_idle_tick = 1;
1267
1268 tick_sched_do_timer(now);
1269 1265
1270 /* 1266 /*
1271 * Do not call, when we are not in irq context and have 1267 * Do not call, when we are not in irq context and have