Re: [PATCH v5 4/4] sched/fair: update util_est only on util_avg updates

From: Patrick Bellasi
Date: Thu Mar 08 2018 - 05:37:15 EST


On 08-Mar 10:48, Peter Zijlstra wrote:
> On Thu, Feb 22, 2018 at 05:01:53PM +0000, Patrick Bellasi wrote:
> > +#define UTIL_EST_NEED_UPDATE_FLAG 0x1
>
> > @@ -5321,12 +5345,19 @@ static inline void util_est_dequeue(struct cfs_rq *cfs_rq,
> > if (!task_sleep)
> > return;
> >
> > + /*
> > + * Skip update of task's estimated utilization if the PELT signal has
> > + * never been updated (at least once) since last enqueue time.
> > + */
> > + ue = READ_ONCE(p->se.avg.util_est);
> > + if (ue.enqueued & UTIL_EST_NEED_UPDATE_FLAG)
> > + return;
>
> The name and function seem inverted, if the flag is set, we do _NOT_
> update util_est.

My reading was along the line "when the flag is set we need an
update of util_avg to collect a new util_est sample"...

... but I agree that's confusing... and unnecessary long.

> How about something like UTIL_EST_UNCHANGED ? That would give:

I would prefer UTIL_AVG_UNCHANGED, since the flags is reset when we
have a change in util_avg, thus enabling util_est updates.

> /*
> * If the PELT values haven't changed since enqueue time,
> * skip the util_est update.
> */
> if (enqueue & UTIL_EST_UNCHANGED)
> return;

--
#include <best/regards.h>

Patrick Bellasi