Re: [PATCH 3/4] sched/fair: Consider SMT in ASYM_PACKING load balance

From: Peter Zijlstra
Date: Tue Apr 06 2021 - 09:08:00 EST


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.