[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0gooW-qN0s03rU9ksxsNvxU4ZSZgXGSGaEcg-s16TnvUw@mail.gmail.com>
Date: Wed, 20 May 2020 12:36:59 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Viresh Kumar <viresh.kumar@...aro.org>
Cc: Xiongfeng Wang <wangxiongfeng2@...wei.com>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Souvik Chakravarty <Souvik.Chakravarty@....com>,
Thanu.Rangarajan@....com, Sudeep Holla <Sudeep.Holla@....com>,
Hanjun Guo <guohanjun@...wei.com>,
John Garry <john.garry@...wei.com>,
Jonathan Cameron <jonathan.cameron@...wei.com>,
Linux PM <linux-pm@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [RFC PATCH v3 1/2] cpufreq: change '.set_boost' to act on only
one policy
On Wed, May 20, 2020 at 6:59 AM Viresh Kumar <viresh.kumar@...aro.org> wrote:
>
> On 19-05-20, 19:41, Xiongfeng Wang wrote:
> > Macro 'for_each_active_policy()' is defined internally. To avoid some
> > cpufreq driver needing this macro to iterate over all the policies in
> > '.set_boost' callback, we redefine '.set_boost' to act on only one
> > policy and pass the policy as an argument.
> > 'cpufreq_boost_trigger_state()' iterate over all the policies to set
> > boost for the system. This is preparation for adding SW BOOST support
> > for CPPC.
> >
> > Signed-off-by: Xiongfeng Wang <wangxiongfeng2@...wei.com>
> > ---
> > drivers/cpufreq/acpi-cpufreq.c | 4 ++--
> > drivers/cpufreq/cpufreq.c | 53 +++++++++++++++++++++---------------------
> > include/linux/cpufreq.h | 2 +-
> > 3 files changed, 30 insertions(+), 29 deletions(-)
> >
> > diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
> > index 289e8ce..b0a9eb5 100644
> > --- a/drivers/cpufreq/acpi-cpufreq.c
> > +++ b/drivers/cpufreq/acpi-cpufreq.c
> > @@ -126,7 +126,7 @@ static void boost_set_msr_each(void *p_en)
> > boost_set_msr(enable);
> > }
> >
> > -static int set_boost(int val)
> > +static int set_boost(struct cpufreq_policy *policy, int val)
> > {
> > get_online_cpus();
> > on_each_cpu(boost_set_msr_each, (void *)(long)val, 1);
>
> I think (Rafael can confirm), that you need to update this as well. You don't
> need to run for each cpu now, but for each CPU in the policy.
Right, the caller will iterate over policies.
Accordingly, the CPU hotplug locking needs to go to the caller too.
Powered by blists - more mailing lists