diff options
Diffstat (limited to 'kernel/time/tick-sched.c')
| -rw-r--r-- | kernel/time/tick-sched.c | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index 3a9e5d5c109..f423bdd035c 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -372,7 +372,7 @@ static ktime_t tick_nohz_stop_sched_tick(struct tick_sched *ts,  		 * the scheduler tick in nohz_restart_sched_tick.  		 */  		if (!ts->tick_stopped) { -			select_nohz_load_balancer(1); +			nohz_balance_enter_idle(cpu);  			calc_load_enter_idle();  			ts->last_tick = hrtimer_get_expires(&ts->sched_timer); @@ -436,7 +436,8 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts)  	if (unlikely(local_softirq_pending() && cpu_online(cpu))) {  		static int ratelimit; -		if (ratelimit < 10) { +		if (ratelimit < 10 && +		    (local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK)) {  			printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n",  			       (unsigned int) local_softirq_pending());  			ratelimit++; @@ -569,7 +570,6 @@ static void tick_nohz_restart(struct tick_sched *ts, ktime_t now)  static void tick_nohz_restart_sched_tick(struct tick_sched *ts, ktime_t now)  {  	/* Update jiffies first */ -	select_nohz_load_balancer(0);  	tick_do_update_jiffies64(now);  	update_cpu_load_nohz();  |