diff options
Diffstat (limited to 'kernel/time/tick-sched.c')
-rw-r--r-- | kernel/time/tick-sched.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index 813993b5fb61..3e216e01bbd1 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c | |||
@@ -325,7 +325,7 @@ void tick_nohz_stop_sched_tick(int inidle) | |||
325 | } while (read_seqretry(&xtime_lock, seq)); | 325 | } while (read_seqretry(&xtime_lock, seq)); |
326 | 326 | ||
327 | if (rcu_needs_cpu(cpu) || printk_needs_cpu(cpu) || | 327 | if (rcu_needs_cpu(cpu) || printk_needs_cpu(cpu) || |
328 | arch_needs_cpu(cpu) || nohz_ratelimit(cpu)) { | 328 | arch_needs_cpu(cpu)) { |
329 | next_jiffies = last_jiffies + 1; | 329 | next_jiffies = last_jiffies + 1; |
330 | delta_jiffies = 1; | 330 | delta_jiffies = 1; |
331 | } else { | 331 | } else { |
@@ -405,13 +405,7 @@ void tick_nohz_stop_sched_tick(int inidle) | |||
405 | * the scheduler tick in nohz_restart_sched_tick. | 405 | * the scheduler tick in nohz_restart_sched_tick. |
406 | */ | 406 | */ |
407 | if (!ts->tick_stopped) { | 407 | if (!ts->tick_stopped) { |
408 | if (select_nohz_load_balancer(1)) { | 408 | select_nohz_load_balancer(1); |
409 | /* | ||
410 | * sched tick not stopped! | ||
411 | */ | ||
412 | cpumask_clear_cpu(cpu, nohz_cpu_mask); | ||
413 | goto out; | ||
414 | } | ||
415 | 409 | ||
416 | ts->idle_tick = hrtimer_get_expires(&ts->sched_timer); | 410 | ts->idle_tick = hrtimer_get_expires(&ts->sched_timer); |
417 | ts->tick_stopped = 1; | 411 | ts->tick_stopped = 1; |
@@ -780,7 +774,6 @@ void tick_setup_sched_timer(void) | |||
780 | { | 774 | { |
781 | struct tick_sched *ts = &__get_cpu_var(tick_cpu_sched); | 775 | struct tick_sched *ts = &__get_cpu_var(tick_cpu_sched); |
782 | ktime_t now = ktime_get(); | 776 | ktime_t now = ktime_get(); |
783 | u64 offset; | ||
784 | 777 | ||
785 | /* | 778 | /* |
786 | * Emulate tick processing via per-CPU hrtimers: | 779 | * Emulate tick processing via per-CPU hrtimers: |
@@ -790,10 +783,6 @@ void tick_setup_sched_timer(void) | |||
790 | 783 | ||
791 | /* Get the next period (per cpu) */ | 784 | /* Get the next period (per cpu) */ |
792 | hrtimer_set_expires(&ts->sched_timer, tick_init_jiffy_update()); | 785 | hrtimer_set_expires(&ts->sched_timer, tick_init_jiffy_update()); |
793 | offset = ktime_to_ns(tick_period) >> 1; | ||
794 | do_div(offset, num_possible_cpus()); | ||
795 | offset *= smp_processor_id(); | ||
796 | hrtimer_add_expires_ns(&ts->sched_timer, offset); | ||
797 | 786 | ||
798 | for (;;) { | 787 | for (;;) { |
799 | hrtimer_forward(&ts->sched_timer, now, tick_period); | 788 | hrtimer_forward(&ts->sched_timer, now, tick_period); |