On Mon, Jan 19, 2015 at 01:45:28PM +0100, Peter Zijlstra wrote: >On Wed, Nov 26, 2014 at 08:44:05AM +0800, Wanpeng Li wrote: >> The overload indicator is used for knowing when we can totally avoid load >> balancing to a cpu that is about to go idle. We can avoid load balancing >> when no cpu has cfs task and both rt and deadline have push/pull mechanism >> to do their own balancing. >> >> However, rq->nr_running on behalf of the total number of each class tasks >> on the cpu, do idle balance when remaining tasks are all non-CFS tasks does >> not make any sense. >> >> This patch fix it by idle balance when there are still other CFS tasks in >> the rq's root domain. >> > >Please always try and Cc the people who touched that code last; for the >idle_balance bits commit 4486edd12b5a ("sched/fair: Implement fast >idling of CPUs when the system is partially loaded") gives a fair clue >as to who that would be. > >> diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h >> index 31f1e4d..f7dd978 100644 >> --- a/kernel/sched/sched.h >> +++ b/kernel/sched/sched.h >> @@ -1269,7 +1269,8 @@ static inline void add_nr_running(struct rq *rq, >> unsigned count) >> >> rq->nr_running = prev_nr + count; >> >> - if (prev_nr < 2 && rq->nr_running >= 2) { >> + if (prev_nr < 2 && rq->nr_running >= 2 && >> + rq->cfs.h_nr_running > 0) { >> #ifdef CONFIG_SMP >> if (!rq->rd->overload) >> rq->rd->overload = true; > >Here 3882ec643997 ("nohz: Use IPI implicit full barrier against >rq->nr_running r/w") might be a clue. > >Also, this is wrong, it breaks NOHZ_FULL.
Got it. If the modification in update_sg_lb_stats of my patch is still corrrect, if so I can send out a new version. Regards, Wanpeng Li -- 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/