On Mon, Apr 05, 2021 at 09:11:07PM -0700, Ricardo Neri wrote:
> @@ -8507,6 +8619,10 @@ static bool update_sd_pick_busiest(struct lb_env *env,
>       if (!sgs->sum_h_nr_running)
>               return false;
>  
> +     if (sgs->group_type == group_asym_packing &&
> +         !asym_can_pull_tasks(env->dst_cpu, sds, sgs, sg))
> +             return false;

All of this makes my head hurt; but afaict this isn't right.

Your update_sg_lb_stats() change makes that we unconditionally set
sgs->group_asym_packing, and then this is to undo that. But it's not
clear this covers all cases right.

Even if !sched_asym_prefer(), we could end up selecting this sg as
busiest, but you're just bailing out here.

Reply via email to