Messages in this thread | | | Date | Thu, 21 Jun 2018 21:08:32 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] sched/util_est: fix util_est_dequeue() for throttled cfs rq |
| |
On Thu, Jun 14, 2018 at 12:32:32PM +0100, Patrick Bellasi wrote: > On 14-Jun 12:33, Vincent Guittot wrote: > > When a cfs_rq is throttled, parent cfs_rq->nr_running is decreased and > > everything happens at cfs_rq level. Currently util_est stays unchanged > > in such case and it keeps accounting the utilization of throttled tasks. > > This can somewhat make sense as we don't dequeue tasks but only throttled > > cfs_rq.
> > If a task of another group is enqueued/dequeued and root cfs_rq becomes > > idle during the dequeue, util_est will be cleared whereas it was > > accounting util_est of throttled tasks before.
> > So the behavior of util_est > > is not always the same regarding throttled tasks and depends of side > > activity. Furthermore, util_est will not be updated when the cfs_rq is > > unthrottled
> > as everything happens at cfs rq level. Main results is that > > util_est will stay null whereas we now have running tasks. We have to wait > > for the next dequeue/enqueue of the previously throttled tasks to get an > > up to date util_est. > > > > Remove the assumption that cfs_rq's estimated utilization of a CPU is 0 > > if there is no running task so the util_est of a task remains until the > > latter is dequeued even if its cfs_rq has been throttled.
> > Fixes: 7f65ea42eb00 ("sched/fair: Add util_est on top of PELT") > > Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
> LGTM: > > Reviewed-by: Patrick Bellasi <patrick.bellasi@arm.com>
Thanks guys!
| |