On 08/06/18 14:54, Juri Lelli wrote: > On 08/06/18 14:48, Vincent Guittot wrote: > > On 8 June 2018 at 14:39, Juri Lelli <juri.le...@redhat.com> wrote: > > > Hi Vincent, > > > > > > On 08/06/18 14:09, Vincent Guittot wrote: > > >> Now that we have both the dl class bandwidth requirement and the dl class > > >> utilization, we can detect when CPU is fully used so we should run at > > >> max. > > >> Otherwise, we keep using the dl bandwidth requirement to define the > > >> utilization of the CPU > > >> > > >> Cc: Ingo Molnar <mi...@redhat.com> > > >> Cc: Peter Zijlstra <pet...@infradead.org> > > >> Signed-off-by: Vincent Guittot <vincent.guit...@linaro.org> > > >> --- > > > > > > [...] > > > > > >> @@ -190,20 +192,24 @@ static unsigned long sugov_aggregate_util(struct > > >> sugov_cpu *sg_cpu) > > >> if (rq->rt.rt_nr_running) > > >> return sg_cpu->max; > > >> > > >> - util = sg_cpu->util_dl; > > >> - util += sg_cpu->util_cfs; > > >> + util = sg_cpu->util_cfs; > > >> util += sg_cpu->util_rt; > > >> > > >> + if ((util + sg_cpu->util_dl) >= sg_cpu->max) > > >> + return sg_cpu->max; > > >> + > > > > > > Mmm, won't we run at max (or reach max) with a, say, 100ms/500ms DL task > > > running alone? > > > > not for a 100ms running task. You have to run more than 320ms to reach max > > value > > > > 100ms/500ms will vary between 0 and 907 > > OK, right, my point I guess is still that such a task will run fine at > ~250 and it might be save more energy by doing so?
As discussed on IRC, we still endup selecting 1/5 of max freq because util_dl is below max. So, turning point is at ~320ms/[something_bigger], which looks a pretty big runtime, but I'm not sure if having that is OK. Also, it becomes smaller with CFS/RT background "perturbations". Mmm. BTW, adding Luca and Claudio. :)