On Tue, 2012-10-30 at 16:32 +0800, Charles Wang wrote: > calc_load_exit_idle depends on updated jiffies, so you shouldn't move > this before tick_do_update_jiffies64.
OK, so it should be moved to the end of the if block. Note, that was a change I made, as that function was added since Frederic did his code. I looked into the code and it seemed that it should be moved for just idle as well. But I agree with you that it should be after the jiffies update. > And why should we do nohz_balance_enter_idle in tick_nohz_idle_exit? > It's nohz_balance_exit_idle here. OK, that's my fault as well. As Frederic's original patch just moved select_nohz_load_balance(0). But the commit c1cc017c59 "sched/nohz: Clean up select_nohz_load_balancer()" replaced it with nohz_balance_enter_idle(cpu), and removed it on exit, there was nothing to replace for the current code. Knowing this patch was considered "buggy" instead of just not moving it (and forgetting about it), I did the change to remind myself to talk about it :-) My question is now, is there any reason to keep that call there? Or can we just remove it as well. -- Steve > > Regards, > Charles > > On 10/30/2012 04:27 AM, Steven Rostedt wrote: > [snipped] > > @@ -573,7 +573,6 @@ static void tick_nohz_restart_sched_tick(struct > tick_sched *ts, ktime_t now) > > tick_do_update_jiffies64(now); > > update_cpu_load_nohz(); > > > > - calc_load_exit_idle(); > > touch_softlockup_watchdog(); > > /* > > * Cancel the scheduled timer and restore the tick > > @@ -628,6 +627,8 @@ void tick_nohz_idle_exit(void) > > tick_nohz_stop_idle(cpu, now); > > > > if (ts->tick_stopped) { > > + nohz_balance_enter_idle(cpu); > > + calc_load_exit_idle(); > > tick_nohz_restart_sched_tick(ts, now); > > tick_nohz_account_idle_ticks(ts); > > } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/