mbox series

[0/6] cpufreq: cleanups

Message ID cover.1560944014.git.viresh.kumar@linaro.org
Headers show
Series cpufreq: cleanups | expand

Message

Viresh Kumar June 19, 2019, 11:35 a.m. UTC
Hi Rafael,

I accumulated these while reworking the freq-constraint series and it
would be nice if these can get in before I send the next version of
freq-constraint stuff.

These are mostly cleanups and code consolidation for better management
of code. Compile and boot tested only.

Thanks.

Viresh Kumar (6):
  cpufreq: Remove the redundant !setpolicy check
  cpufreq: Replace few CPUFREQ_CONST_LOOPS checks with has_target()
  cpufreq: Remove the has_target() check from notifier handler
  cpufreq: Use has_target() instead of !setpolicy
  cpufreq: Reuse cpufreq_update_current_freq() in __cpufreq_get()
  cpufreq: Avoid calling cpufreq_verify_current_freq() from
    handle_update()

 drivers/cpufreq/cpufreq.c | 115 +++++++++++++++++---------------------
 1 file changed, 52 insertions(+), 63 deletions(-)

-- 
2.21.0.rc0.269.g1a574e7a288b

Comments

Rafael J. Wysocki June 19, 2019, 12:20 p.m. UTC | #1
On Wed, Jun 19, 2019 at 1:36 PM Viresh Kumar <viresh.kumar@linaro.org> wrote:
>

> CPUFREQ_CONST_LOOPS was introduced in a very old commit from pre-2.6

> kernel release commit 6a4a93f9c0d5 ("[CPUFREQ] Fix 'out of sync'

> issue").

>

> Probably the initial idea was to just avoid these checks for set_policy

> type drivers and then things got changed over the years. And it is very

> unclear why these checks are there at all.

>

> Replace the CPUFREQ_CONST_LOOPS check with has_target(), which makes

> more sense now.

>

> Also remove () around freq comparison statement as they aren't required

> and checkpatch also warns for them.

>

> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

> ---

>  drivers/cpufreq/cpufreq.c | 13 +++++--------

>  1 file changed, 5 insertions(+), 8 deletions(-)

>

> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c

> index 54befd775bd6..e59194c2c613 100644

> --- a/drivers/cpufreq/cpufreq.c

> +++ b/drivers/cpufreq/cpufreq.c

> @@ -359,12 +359,10 @@ static void cpufreq_notify_transition(struct cpufreq_policy *policy,

>                  * which is not equal to what the cpufreq core thinks is

>                  * "old frequency".

>                  */

> -               if (!(cpufreq_driver->flags & CPUFREQ_CONST_LOOPS)) {

> -                       if (policy->cur && (policy->cur != freqs->old)) {

> -                               pr_debug("Warning: CPU frequency is %u, cpufreq assumed %u kHz\n",

> -                                        freqs->old, policy->cur);

> -                               freqs->old = policy->cur;

> -                       }

> +               if (has_target() && policy->cur && policy->cur != freqs->old) {

> +                       pr_debug("Warning: CPU frequency is %u, cpufreq assumed %u kHz\n",

> +                                freqs->old, policy->cur);

> +                       freqs->old = policy->cur;


Is cpufreq_notify_transition() ever called if ->setpolicy drivers are in use?

>                 }

>

>                 srcu_notifier_call_chain(&cpufreq_transition_notifier_list,

> @@ -1618,8 +1616,7 @@ static unsigned int __cpufreq_get(struct cpufreq_policy *policy)

>         if (policy->fast_switch_enabled)

>                 return ret_freq;

>

> -       if (ret_freq && policy->cur &&

> -               !(cpufreq_driver->flags & CPUFREQ_CONST_LOOPS)) {

> +       if (has_target() && ret_freq && policy->cur) {

>                 /* verify no discrepancy between actual and

>                                         saved value exists */

>                 if (unlikely(ret_freq != policy->cur)) {

> --

> 2.21.0.rc0.269.g1a574e7a288b

>
Rafael J. Wysocki June 19, 2019, 12:28 p.m. UTC | #2
On Wed, Jun 19, 2019 at 1:36 PM Viresh Kumar <viresh.kumar@linaro.org> wrote:
>

> For code consistency, use has_target() instead of !setpolicy everywhere,

> as it is already done at several places.


That's OK

> Maybe we should also use !has_target() for setpolicy case to use only one expression

> for this differentiation.


But I'm not sure what you mean here?