Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1610132
| Path | csiph.com!news.redatomik.org!weretis.net!feeder4.news.weretis.net!news.unit0.net!news.panservice.it!bofh.it!news.nic.it!robomod |
|---|---|
| From | "Rafael J. Wysocki" <rjw@rjwysocki.net> |
| Newsgroups | linux.kernel |
| Subject | [PATCH 04/16] cpufreq: intel_pstate: Fold intel_pstate_reset_all_pid() into the caller |
| Date | Tue, 28 Mar 2017 00:50:01 +0200 |
| Message-ID | <tpLCx-6Cv-3@gated-at.bofh.it> (permalink) |
| References | <tpLsR-6yQ-7@gated-at.bofh.it> |
| X-Original-To | Linux PM <linux-pm@vger.kernel.org> |
| User-Agent | KMail/4.14.10 (Linux/4.10.0+; KDE/4.14.9; x86_64; ; ) |
| MIME-Version | 1.0 |
| Content-Transfer-Encoding | 7Bit |
| Content-Type | text/plain; charset="us-ascii" |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 57 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | LKML <linux-kernel@vger.kernel.org>, Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>, Doug Smythies <dsmythies@telus.net> |
| X-Original-Date | Tue, 28 Mar 2017 00:07:15 +0200 |
| X-Original-Message-ID | <2138140.7OVzaumNXP@aspire.rjw.lan> |
| X-Original-References | <6409323.DYHvh3CYlO@aspire.rjw.lan> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1610132 |
Show key headers only | View raw
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
There is only one caller of intel_pstate_reset_all_pid(), which is
pid_param_set() used in the debugfs interface only, and having that
code split does not make it particularly convenient to follow.
For this reason, move the body of intel_pstate_reset_all_pid() into
its caller and drop that function.
Also change the loop from for_each_online_cpu() (which is obviously
racy with respect to CPU offline/online) to for_each_possible_cpu(),
so that all PID parameters are reset for all CPUs regardless of their
online/offline status (to prevent, for example, a previously offline
CPU from going online with a stale set of PID parameters).
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/cpufreq/intel_pstate.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
Index: linux-pm/drivers/cpufreq/intel_pstate.c
===================================================================
--- linux-pm.orig/drivers/cpufreq/intel_pstate.c
+++ linux-pm/drivers/cpufreq/intel_pstate.c
@@ -576,16 +576,6 @@ static inline void intel_pstate_busy_pid
pid_reset(&cpu->pid, pid_params.setpoint, 100, pid_params.deadband, 0);
}
-static inline void intel_pstate_reset_all_pid(void)
-{
- unsigned int cpu;
-
- for_each_online_cpu(cpu) {
- if (all_cpu_data[cpu])
- intel_pstate_busy_pid_reset(all_cpu_data[cpu]);
- }
-}
-
static inline void update_turbo_state(void)
{
u64 misc_en;
@@ -941,9 +931,14 @@ static void intel_pstate_update_policies
/************************** debugfs begin ************************/
static int pid_param_set(void *data, u64 val)
{
+ unsigned int cpu;
+
*(u32 *)data = val;
pid_params.sample_rate_ns = pid_params.sample_rate_ms * NSEC_PER_MSEC;
- intel_pstate_reset_all_pid();
+ for_each_possible_cpu(cpu)
+ if (all_cpu_data[cpu])
+ intel_pstate_busy_pid_reset(all_cpu_data[cpu]);
+
return 0;
}
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH 04/16] cpufreq: intel_pstate: Fold intel_pstate_reset_all_pid() into the caller "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-03-28 00:50 +0200
csiph-web