[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2467412.EHWtmERkoP@vostro.rjw.lan>
Date: Tue, 29 Mar 2016 14:10:17 +0200
From: "Rafael J. Wysocki" <rjw@...ysocki.net>
To: Viresh Kumar <viresh.kumar@...aro.org>
Cc: Linux PM list <linux-pm@...r.kernel.org>,
Juri Lelli <juri.lelli@....com>,
Steve Muckle <steve.muckle@...aro.org>,
ACPI Devel Maling List <linux-acpi@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Peter Zijlstra <peterz@...radead.org>,
Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Michael Turquette <mturquette@...libre.com>,
Ingo Molnar <mingo@...nel.org>
Subject: Re: [PATCH v6 6/7][Resend] cpufreq: Support for fast frequency switching
On Monday, March 28, 2016 12:33:41 PM Viresh Kumar wrote:
> forgot to review acpi update earlier ..
>
> On 22-03-16, 02:53, Rafael J. Wysocki wrote:
> > Index: linux-pm/drivers/cpufreq/acpi-cpufreq.c
> > ===================================================================
> > --- linux-pm.orig/drivers/cpufreq/acpi-cpufreq.c
> > +++ linux-pm/drivers/cpufreq/acpi-cpufreq.c
> > @@ -458,6 +458,43 @@ static int acpi_cpufreq_target(struct cp
> > return result;
> > }
> >
> > +unsigned int acpi_cpufreq_fast_switch(struct cpufreq_policy *policy,
> > + unsigned int target_freq)
> > +{
> > + struct acpi_cpufreq_data *data = policy->driver_data;
> > + struct acpi_processor_performance *perf;
> > + struct cpufreq_frequency_table *entry;
> > + unsigned int next_perf_state, next_freq, freq;
> > +
> > + /*
> > + * Find the closest frequency above target_freq.
> > + *
> > + * The table is sorted in the reverse order with respect to the
> > + * frequency and all of the entries are valid (see the initialization).
> > + */
> > + entry = data->freq_table;
> > + do {
> > + entry++;
> > + freq = entry->frequency;
> > + } while (freq >= target_freq && freq != CPUFREQ_TABLE_END);
>
> Consider this table:
>
> 11000
> 10000
> 9000
>
> And a target-freq of 10000.
>
> Wouldn't you end up selecting 11000 ? Or did I misread it ?
In that case the loop will break for freq = 9000 (as per the above
freq >= freq_target check), so it looks like you've misread it.
Thanks,
Rafael
Powered by blists - more mailing lists