Quoting Steve Muckle (2016-03-15 19:52:59)
> On 03/13/2016 10:22 PM, Michael Turquette wrote:
> > +unsigned long cfs_capacity_margin = CAPACITY_MARGIN_DEFAULT;
> > +
> >  #ifdef CONFIG_CFS_BANDWIDTH
> >  /*
> >   * Amount of runtime to allocate from global (tg) to local (per-cfs_rq) 
> > pool
> > @@ -2840,6 +2853,8 @@ static inline void update_load_avg(struct 
> > sched_entity *se, int update_tg)
> >  
> >       if (cpu == smp_processor_id() && &rq->cfs == cfs_rq) {
> >               unsigned long max = rq->cpu_capacity_orig;
> > +             unsigned long cap = cfs_rq->avg.util_avg *
> > +                     cfs_capacity_margin / max;
> 
> Doesn't rq->cpu_capacity_orig get scaled per the microarch invariance?
> This would mean that the margin we're applying here would differ based
> on that.
> 
> I'd expect that the margin would be * (cfs_capacity_margin /
> SCHED_CAPACITY_SCALE) which would then reduce the division into a shift.

Will fix.

Thanks,
Mike

Reply via email to