Messages in this thread | | | From | Vincent Guittot <> | Date | Fri, 15 Apr 2022 10:32:09 +0200 | Subject | Re: [PATCH V1 RESEND]: sched/fair: Revise comment about lb decision matrix |
| |
On Fri, 15 Apr 2022 at 04:22, Tao Zhou <tao.zhou@linux.dev> wrote: > > If busiest group type is group_misfit_task, the local > group type must be group_has_spare according to below > code in update_sd_pick_busiest(): > > if (sgs->group_type == group_misfit_task && > (!capacity_greater(capacity_of(env->dst_cpu), sg->sgc->max_capacity) || > sds->local_stat.group_type != group_has_spare)) > return false; > > group type imbalanced and overloaded and fully_busy are filtered in here. > misfit and asym are filtered before in update_sg_lb_stats().
The behavior has changed with cad68e552e77 ("sched/fair: Consider misfit tasks when load-balancing") But we haven't updated the matrix
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
> So, change the decision matrix to: > > busiest \ local has_spare fully_busy misfit asym imbalanced overloaded > has_spare nr_idle balanced N/A N/A balanced balanced > fully_busy nr_idle nr_idle N/A N/A balanced balanced > misfit_task force N/A N/A N/A *N/A* *N/A* > asym_packing force force N/A N/A force force > imbalanced force force N/A N/A force force > overloaded force force N/A N/A force avg_load > > Fixes: 0b0695f2b34a ("sched/fair: Rework load_balance()") > Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com> > Signed-off-by: Tao Zhou <tao.zhou@linux.dev> > --- > > v1 changelog: > (1) Send to MAINTAINERS/REVIEWS get from `./scripts/get_maintainer.pl` > suggested by Dietmar Eggemann. > (2) Based on v5.18-rc2 > > > 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 d4bd299d67ab..b8c67e7c8cf3 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -9495,7 +9495,7 @@ static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *s > * busiest \ local has_spare fully_busy misfit asym imbalanced overloaded > * has_spare nr_idle balanced N/A N/A balanced balanced > * fully_busy nr_idle nr_idle N/A N/A balanced balanced > - * misfit_task force N/A N/A N/A force force > + * misfit_task force N/A N/A N/A N/A N/A > * asym_packing force force N/A N/A force force > * imbalanced force force N/A N/A force force > * overloaded force force N/A N/A force avg_load > -- > 2.35.2 >
| |