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? Also, less freq switches (consider for example a few background CFS tasks waking up from time to time).