On 20/12/2018 07:55, Vincent Guittot wrote: > newly idle load balance is not always triggered when a cpu becomes idle. > This prevent the scheduler to get a chance to migrate task for asym packing. > Enable active migration because of asym packing during idle load balance too. > > Signed-off-by: Vincent Guittot <vincent.guit...@linaro.org> > --- > kernel/sched/fair.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 9b31247..487c73e 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -8853,7 +8853,7 @@ static int need_active_balance(struct lb_env *env) > { > struct sched_domain *sd = env->sd; > > - if (env->idle == CPU_NEWLY_IDLE) { > + if (env->idle != CPU_NOT_IDLE) { > > /* > * ASYM_PACKING needs to force migrate tasks from busy but >
Regarding just extending the condition to include idle balance: Reviewed-by: Valentin Schneider <valentin.schnei...@arm.com> As in the previous thread, I'll still argue that if you want to *reliably* exploit newidle balances to do asym packing active balancing, you should add some logic to raise rq->rd->overload when we notice some asym packing could be done, so that it can be leveraged by a higher-priority CPU doing a newidle balance. Otherwise the few newidle asym-packing active balances you'll get will be due to somewhat random luck because we happened to set that overload flag at some point.