Messages in this thread | | | From | Valentin Schneider <> | Subject | Re: [PATCH 1/2] sched/fair: Filter out locally-unsolvable misfit imbalances | Date | Thu, 22 Apr 2021 20:19:30 +0100 |
| |
On 22/04/21 11:48, Dietmar Eggemann wrote: > On 15/04/2021 19:58, Valentin Schneider wrote: > > [...] > >> Aggregate a misfit task's load into sgs->group_misfit_task_load only if >> env->dst_cpu would grant it a capacity uplift. >> >> Note that the aforementioned capacity vs sgc->max_capacity comparison was >> meant to prevent misfit task downmigration: candidate groups classified as >> group_misfit_task but with a higher (max) CPU capacity than the destination CPU >> would be discarded. This change makes it so said group_misfit_task >> classification can't happen anymore, which may cause some undesired >> downmigrations. >> >> Further tweak find_busiest_queue() to ensure this doesn't happen. > > Maybe you can describe shortly here what's the new mechanism is you > replace the old 'prevent misfit task downmigration' with. >
Will do.
> Also note >> find_busiest_queue() can now iterate over CPUs with a higher capacity than >> the local CPU's, so add a capacity check there. > > [...] > >> +static inline void update_sg_lb_misfit_stats(struct lb_env *env, >> + struct sched_group *group, > > Seems to be not used. >
Right, that's an update_sg_lb_stats() copy/paste fail :-)
> >> @@ -9288,6 +9310,8 @@ static struct sched_group *find_busiest_group(struct lb_env *env) >> if (!sds.busiest) >> goto out_balanced; >> >> + env->src_grp_type = busiest->group_type; > > Maybe a short comment why you set it here in fbg(). It's only used later > in fbq() for asym. CPU capacity sd but is set unconditionally. >
Seeing as almost every other line there has an accompanying comment, I think I'll do that.
> [...]
| |