Re: [RFC 4/4] sched/fair: Take into runnable_avg to classify group

From: Vincent Guittot
Date: Fri Feb 14 2020 - 02:48:33 EST


On Thu, 13 Feb 2020 at 19:37, Valentin Schneider
<valentin.schneider@xxxxxxx> wrote:
>
> On 2/13/20 6:32 PM, Valentin Schneider wrote:
> >> @@ -7911,6 +7912,10 @@ group_has_capacity(unsigned int imbalance_pct, struct sg_lb_stats *sgs)
> >> if (sgs->sum_nr_running < sgs->group_weight)
> >> return true;
> >>
> >> + if ((sgs->group_capacity * imbalance_pct) <
> >> + (sgs->group_runnable * 100))
> >> + return false;
> >> +
> >
> > I haven't stared long enough at patch 2, but I'll ask anyway - with this new
> > condition, do we still need the next one (based on util)? AIUI
> > group_runnable is >= group_util, so if group_runnable is within the allowed
> > margin then group_util has to be as well.
> >
>
> Hmph, actually util_est breaks the runnable >= util assumption I think...

yes, that's 1 reason

and also the 2 conditions are a bit different as the imbalance_pct is
not on the same side of the condition.

For util_avg, the tests is true when util_avg is still below but close
to capacity
For runnable_avg, the test is true when runnable is significantly
above capacity

>
> >> if ((sgs->group_capacity * 100) >
> >> (sgs->group_util * imbalance_pct))
> >> return true;