From: Quentin Perret <quentin.perret@arm.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Linux PM <linux-pm@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
Chen Yu <yu.c.chen@intel.com>,
Gabriele Mazzotta <gabriele.mzt@gmail.com>,
peterz@infradead.org
Subject: Re: [RFT][Update][PATCH 2/2] cpufreq: intel_pstate: Update max CPU frequency on global turbo changes
Date: Tue, 5 Mar 2019 11:01:37 +0000 [thread overview]
Message-ID: <20190305110135.jdgc6vtdivs5rdjv@queper01-lin> (raw)
In-Reply-To: <2336151.IZk3Z8DVvP@aspire.rjw.lan>
On Tuesday 05 Mar 2019 at 11:50:56 (+0100), Rafael J. Wysocki wrote:
> On Tuesday, March 5, 2019 11:42:59 AM CET Quentin Perret wrote:
> > > +static void intel_pstate_update_max_freq(unsigned int cpu)
> > > +{
> > > + struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
> > > + struct cpufreq_policy new_policy;
> > > + struct cpudata *cpudata;
> > > +
> > > + if (!policy)
> > > + return;
> > > +
> > > + down_write(&policy->rwsem);
> > > +
> > > + if (policy_is_inactive(policy))
> > > + goto unlock;
> > > +
> > > + cpudata = all_cpu_data[cpu];
> > > + policy->cpuinfo.max_freq = global.turbo_disabled_upd ?
> > > + cpudata->pstate.max_freq : cpudata->pstate.turbo_freq;
> > > +
> > > + memcpy(&new_policy, policy, sizeof(*policy));
> > > + new_policy.max = min(policy->user_policy.max, policy->cpuinfo.max_freq);
> > > + new_policy.min = min(policy->user_policy.min, new_policy.max);
> > > +
> > > + cpufreq_set_policy(policy, &new_policy);
> >
> > Do you want to force-restart the governor here ?
>
> cpufreq_set_policy() is expected to take care of the governor.
> If it doesn't, there is a bug somewhere.
Yes, it does something when there is a governor change, but that's not
the case here IIUC.
> > Schedutil caches cpuinfo.max_freq for the iowait stuff in sugov_start() [1].
>
> If it does so, it should update the cached value in sugov_limits().
>
> I guess I can add a patch updating it to this series.
Right, I think we've been under the assumption that unlike policy->max,
cpuinfo.max_freq should be constant, so there was no need to update the
value at run time. But if that assumption doesn't hold any more, then
yeah we'll need something more dynamic I guess.
>
> > I'm not sure about the other governors.
>
> They don't do that AFAICS.
OK
> > And just removing sg_cpu->iowait_boost_max to use the cpuinfo struct
> > instead will conflict with [2], I think.
>
> Thanks for pointing this out.
N/p :-)
Thanks,
Quentin
next prev parent reply other threads:[~2019-03-05 11:01 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-01 12:43 [RFT][PATCH 0/2] cpufreq: intel_pstate: Handle _PPC updates on global turbo disable/enable Rafael J. Wysocki
2019-03-01 12:45 ` [RFT][PATCH 1/2] cpufreq: intel_pstate: Driver-specific handling of _PPC updates Rafael J. Wysocki
2019-03-01 12:47 ` [RFT][PATCH 2/2] cpufreq: intel_pstate: Update max CPU frequency on global turbo changes Rafael J. Wysocki
2019-03-01 12:57 ` [RFT][Update][PATCH " Rafael J. Wysocki
2019-03-04 14:39 ` Yu Chen
2019-03-05 10:42 ` Quentin Perret
2019-03-05 10:50 ` Rafael J. Wysocki
2019-03-05 10:58 ` Rafael J. Wysocki
2019-03-05 11:44 ` Peter Zijlstra
2019-03-05 11:52 ` Rafael J. Wysocki
2019-03-05 12:00 ` Quentin Perret
2019-03-05 12:24 ` Peter Zijlstra
2019-03-05 17:02 ` Rafael J. Wysocki
2019-03-05 17:37 ` Quentin Perret
2019-03-06 10:05 ` Rafael J. Wysocki
2019-03-07 11:02 ` Quentin Perret
2019-03-07 11:23 ` Peter Zijlstra
2019-03-07 11:49 ` Quentin Perret
2019-03-07 11:25 ` Rafael J. Wysocki
2019-03-07 11:59 ` Quentin Perret
2019-03-05 11:01 ` Quentin Perret [this message]
2019-03-01 17:39 ` [RFT][PATCH 0/2] cpufreq: intel_pstate: Handle _PPC updates on global turbo disable/enable Srinivas Pandruvada
2019-03-02 10:30 ` Yu Chen
2019-03-02 16:24 ` Srinivas Pandruvada
2019-03-03 17:03 ` Rafael J. Wysocki
2019-03-03 21:20 ` Srinivas Pandruvada
2019-03-03 21:51 ` Rafael J. Wysocki
2019-03-04 4:06 ` Srinivas Pandruvada
2019-03-04 9:41 ` Rafael J. Wysocki
2019-03-04 18:06 ` Srinivas Pandruvada
2019-03-04 21:57 ` Rafael J. Wysocki
2019-03-04 23:04 ` Srinivas Pandruvada
2019-03-05 8:40 ` Rafael J. Wysocki
2019-03-03 22:42 ` Gabriele Mazzotta
2019-03-04 9:58 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190305110135.jdgc6vtdivs5rdjv@queper01-lin \
--to=quentin.perret@arm.com \
--cc=gabriele.mzt@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=srinivas.pandruvada@linux.intel.com \
--cc=viresh.kumar@linaro.org \
--cc=yu.c.chen@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox