On Fri, 2015-04-03 at 15:35 -0700, Tim Chen wrote: > I think we can get rid of the done_balancing boolean > and make it a bit easier to read if we change the above code to > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index bcfe320..08317dc 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -7557,8 +7557,13 @@ static void nohz_idle_balance(struct rq *this_rq, enum > cpu_idle_type idle) > * work being done for other cpus. Next load > * balancing owner will pick it up. > */ > - if (need_resched()) > - break; > + if (need_resched()) { > + /* preparing to bail, kicking other cpu to continue */ > + clear_bit(NOHZ_BALANCE_KICK, nohz_flags(this_cpu)); > + if (nohz_kick_needed(this_rq)) > + nohz_balance_kick(); > + return; > + }
Hi Tim, We would also need the nohz_kick_needed/nohz_balance_kick if we initially find that the current CPU is not idle (at the beginning of nohz_idle_balance). In the above case, we would need to add the code to 2 locations. Would it be better to still keep the done_balancing to avoid having duplicate code? -- 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/