On Fri, Jul 7, 2017 at 3:59 AM, Juri Lelli <juri.le...@arm.com> wrote: [..] > >> If yes, then I don't think it was about having separate APIs, but just >> storing >> util_cfs/dl separately. >> >> > -static void sugov_get_util(unsigned long *util, unsigned long *max) >> > +static void sugov_get_util(struct sugov_cpu *sg_cpu) >> > { >> > struct rq *rq = this_rq(); >> > - unsigned long dl_util = (rq->dl.running_bw * SCHED_CAPACITY_SCALE) >> > - >> BW_SHIFT; >> > >> > - *max = arch_scale_cpu_capacity(NULL, smp_processor_id()); >> > + sg_cpu->max = arch_scale_cpu_capacity(NULL, smp_processor_id()); >> > + sg_cpu->util_cfs = rq->cfs.avg.util_avg; >> > + sg_cpu->util_dl = (rq->dl.running_bw * SCHED_CAPACITY_SCALE) >> > + >> BW_SHIFT; >> > +} >> > >> > +static unsigned long sugov_aggregate_util(struct sugov_cpu *sg_cpu) >> >> As Joel already mentioned, I don't think we should create two separate >> routines >> here. >> > > Mmm, it makes retrieving of utilization in sugov_update_shared and > aggregating values for the domain in sugov_next_freq_shared cleaner, > IMHO. >
I agree, thanks. -Joel