[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251128135825.GC4067720@noisy.programming.kicks-ass.net>
Date: Fri, 28 Nov 2025 14:58:25 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Vincent Guittot <vincent.guittot@...aro.org>
Cc: Fernand Sieber <sieberf@...zon.com>, mingo@...hat.com,
linux-kernel@...r.kernel.org, juri.lelli@...hat.com,
dietmar.eggemann@....com, rostedt@...dmis.org, bsegall@...gle.com,
mgorman@...e.de, vschneid@...hat.com, kprateek.nayak@....com,
dwmw@...zon.co.uk, jschoenh@...zon.de, liuyuxua@...zon.com,
abusse@...zon.com, gmazz@...zon.com, rkagan@...zon.com
Subject: Re: [PATCH] sched/fair: Force idle aware load balancing
On Fri, Nov 28, 2025 at 02:55:36PM +0100, Vincent Guittot wrote:
> On Thu, 27 Nov 2025 at 21:28, Fernand Sieber <sieberf@...zon.com> wrote:
> > @@ -10135,15 +10136,15 @@ static inline int sg_imbalanced(struct sched_group *group)
> > static inline bool
> > group_has_capacity(unsigned int imbalance_pct, struct sg_lb_stats *sgs)
> > {
> > - if (sgs->sum_nr_running < sgs->group_weight)
> > + if (sgs->sum_nr_running < (sgs->group_weight - sgs->forceidle_weight))
> > return true;
> >
> > - if ((sgs->group_capacity * imbalance_pct) <
> > - (sgs->group_runnable * 100))
> > + if ((sgs->group_capacity * imbalance_pct * (sgs->group_weight - sgs->forceidle_weight)) <
> > + (sgs->group_runnable * 100 * sgs->group_weight))
>
> so you apply a ratio on group capacity based on the number of forced
> idle but what if you have heterogeneous systems ?
Ah, good point. I suppose tracking force_idle_capacity in
update_sg_lb_stats() should be possible, and then subtract that from
group_capacity or so.
Powered by blists - more mailing lists