On 11-Apr 09:57, Vincent Guittot wrote: > On 6 April 2018 at 19:28, Patrick Bellasi <patrick.bell...@arm.com> wrote: > > > } > > @@ -5454,8 +5441,11 @@ static void dequeue_task_fair(struct rq *rq, struct > > task_struct *p, int flags) > > update_cfs_group(se); > > } > > > > - if (!se) > > + /* The task is no more visible from the root cfs_rq */ > > + if (!se) { > > sub_nr_running(rq, 1); > > + cpufreq_update_util(rq, 0); > > call to cpufreq_update_util() should be done after util_est_dequeue()
Yeah... good point, looks like I should have notice it :) That's another compelling example why updating schedutil as a side effect of update_load_avg does not allow to easily track when it's the best time to trigger an update. UtilEst is now a factor which could impact on OPP selection for CFS tasks, and thus we should update at the really end of the function. > > + } > > > > util_est_dequeue(&rq->cfs, p, task_sleep); > > hrtick_update(rq); -- #include <best/regards.h> Patrick Bellasi