Bläddra i källkod

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>
Rafael J. Wysocki 7 år sedan
förälder
incheckning
ff7de62031
1 ändrade filer med 6 tillägg och 10 borttagningar
  1. 6 10
      kernel/time/tick-sched.c

+ 6 - 10
kernel/time/tick-sched.c

@@ -113,8 +113,7 @@ static ktime_t tick_init_jiffy_update(void)
 	return period;
 	return period;
 }
 }
 
 
-
-static void tick_sched_do_timer(ktime_t now)
+static void tick_sched_do_timer(struct tick_sched *ts, ktime_t now)
 {
 {
 	int cpu = smp_processor_id();
 	int cpu = smp_processor_id();
 
 
@@ -134,6 +133,9 @@ static void tick_sched_do_timer(ktime_t now)
 	/* Check, if the jiffies need an update */
 	/* Check, if the jiffies need an update */
 	if (tick_do_timer_cpu == cpu)
 	if (tick_do_timer_cpu == cpu)
 		tick_do_update_jiffies64(now);
 		tick_do_update_jiffies64(now);
+
+	if (ts->inidle)
+		ts->got_idle_tick = 1;
 }
 }
 
 
 static void tick_sched_handle(struct tick_sched *ts, struct pt_regs *regs)
 static 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)
 	struct pt_regs *regs = get_irq_regs();
 	struct pt_regs *regs = get_irq_regs();
 	ktime_t now = ktime_get();
 	ktime_t now = ktime_get();
 
 
-	if (ts->inidle)
-		ts->got_idle_tick = 1;
-
 	dev->next_event = KTIME_MAX;
 	dev->next_event = KTIME_MAX;
 
 
-	tick_sched_do_timer(now);
+	tick_sched_do_timer(ts, now);
 	tick_sched_handle(ts, regs);
 	tick_sched_handle(ts, regs);
 
 
 	/* No need to reprogram if we are running tickless  */
 	/* No need to reprogram if we are running tickless  */
@@ -1262,10 +1261,7 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer)
 	struct pt_regs *regs = get_irq_regs();
 	struct pt_regs *regs = get_irq_regs();
 	ktime_t now = ktime_get();
 	ktime_t now = ktime_get();
 
 
-	if (ts->inidle)
-		ts->got_idle_tick = 1;
-
-	tick_sched_do_timer(now);
+	tick_sched_do_timer(ts, now);
 
 
 	/*
 	/*
 	 * Do not call, when we are not in irq context and have
 	 * Do not call, when we are not in irq context and have