Re: [RFCv5 PATCH 40/46] sched/cpufreq_sched: compute freq_new based on capacity_orig_of()

Peter Zijlstra
2015-08-16T22:02:17Z

On Sat, Aug 15, 2015 at 09:03:33PM -0700, Michael Turquette wrote:
> Quoting Peter Zijlstra (2015-08-15 05:46:38)
> > On Tue, Jul 07, 2015 at 07:24:23PM +0100, Morten Rasmussen wrote:
> > > diff --git a/kernel/sched/cpufreq_sched.c b/kernel/sched/cpufreq_sched.c
> > > index 2968f3a..7071528 100644
> > > --- a/kernel/sched/cpufreq_sched.c
> > > +++ b/kernel/sched/cpufreq_sched.c
> > > @@ -184,7 +184,7 @@ void cpufreq_sched_set_cap(int cpu, unsigned long capacity)
> > > goto out;
> > >
> > > /* Convert the new maximum capacity request into a cpu frequency */
> > > - freq_new = capacity * policy->max >> SCHED_CAPACITY_SHIFT;
> > > + freq_new = (capacity * policy->max) / capacity_orig_of(cpu);
> > >
> > > /* No change in frequency? Bail and return current capacity. */
> > > if (freq_new == policy->cur)
> >
> > Can't we avoid exporting that lot by simply passing in the right values
> > to begin with?
>
> By "right value" do you mean, "pass the frequency from cfs"?

Nah, just maybe: (capacity << SCHED_CAPACITY_SHIFT) / capacity_orig_of()
such that you don't have to export that knowledge to this thing.