linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linux PM <linux-pm@vger.kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Subject: [PATCH 03/14] cpufreq: intel_pstate: Initialize pid_params statically
Date: Sun, 12 Mar 2017 18:14:51 +0100	[thread overview]
Message-ID: <2425284.PBSYUI062S@aspire.rjw.lan> (raw)
In-Reply-To: <5656785.7SEhxaGEOz@aspire.rjw.lan>

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Notice that both the existing struct cpu_defaults instances in which
PID parameters are actually initialized use the same values of those
parameters, so it is not really necessary to copy them over to
pid_params dynamically.

Instead, initialize pid_params statically with those values and
drop the unused pid_policy member from struct cpu_defaults along
with copy_pid_params() used for initializing it.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/cpufreq/intel_pstate.c |   42 +++++++++--------------------------------
 1 file changed, 10 insertions(+), 32 deletions(-)

Index: linux-pm/drivers/cpufreq/intel_pstate.c
===================================================================
--- linux-pm.orig/drivers/cpufreq/intel_pstate.c
+++ linux-pm/drivers/cpufreq/intel_pstate.c
@@ -342,19 +342,26 @@ struct pstate_funcs {
 
 /**
  * struct cpu_defaults- Per CPU model default config data
- * @pid_policy:	PID config data
  * @funcs:		Callback function data
  */
 struct cpu_defaults {
-	struct pstate_adjust_policy pid_policy;
 	struct pstate_funcs funcs;
 };
 
 static inline int32_t get_target_pstate_use_performance(struct cpudata *cpu);
 static inline int32_t get_target_pstate_use_cpu_load(struct cpudata *cpu);
 
-static struct pstate_adjust_policy pid_params __read_mostly;
 static struct pstate_funcs pstate_funcs __read_mostly;
+static struct pstate_adjust_policy pid_params __read_mostly = {
+	.sample_rate_ms = 10,
+	.sample_rate_ns = 10 * NSEC_PER_MSEC,
+	.deadband = 0,
+	.setpoint = 97,
+	.p_gain_pct = 20,
+	.d_gain_pct = 0,
+	.i_gain_pct = 0,
+};
+
 static int hwp_active __read_mostly;
 static bool per_cpu_limits __read_mostly;
 
@@ -1572,14 +1579,6 @@ static int knl_get_turbo_pstate(void)
 }
 
 static struct cpu_defaults core_params = {
-	.pid_policy = {
-		.sample_rate_ms = 10,
-		.deadband = 0,
-		.setpoint = 97,
-		.p_gain_pct = 20,
-		.d_gain_pct = 0,
-		.i_gain_pct = 0,
-	},
 	.funcs = {
 		.get_max = core_get_max_pstate,
 		.get_max_physical = core_get_max_pstate_physical,
@@ -1618,14 +1617,6 @@ static const struct cpu_defaults airmont
 };
 
 static const struct cpu_defaults knl_params = {
-	.pid_policy = {
-		.sample_rate_ms = 10,
-		.deadband = 0,
-		.setpoint = 97,
-		.p_gain_pct = 20,
-		.d_gain_pct = 0,
-		.i_gain_pct = 0,
-	},
 	.funcs = {
 		.get_max = core_get_max_pstate,
 		.get_max_physical = core_get_max_pstate_physical,
@@ -2506,17 +2497,6 @@ static int __init intel_pstate_msrs_not_
 	return 0;
 }
 
-static void __init copy_pid_params(struct pstate_adjust_policy *policy)
-{
-	pid_params.sample_rate_ms = policy->sample_rate_ms;
-	pid_params.sample_rate_ns = pid_params.sample_rate_ms * NSEC_PER_MSEC;
-	pid_params.p_gain_pct = policy->p_gain_pct;
-	pid_params.i_gain_pct = policy->i_gain_pct;
-	pid_params.d_gain_pct = policy->d_gain_pct;
-	pid_params.deadband = policy->deadband;
-	pid_params.setpoint = policy->setpoint;
-}
-
 #ifdef CONFIG_ACPI
 static void intel_pstate_use_acpi_profile(void)
 {
@@ -2698,8 +2678,6 @@ static int __init intel_pstate_init(void
 
 	cpu_def = (struct cpu_defaults *)id->driver_data;
 	copy_cpu_funcs(&cpu_def->funcs);
-	if (pstate_funcs.get_target_pstate == get_target_pstate_use_performance)
-		copy_pid_params(&cpu_def->pid_policy);
 
 	if (intel_pstate_msrs_not_valid())
 		return -ENODEV;

  parent reply	other threads:[~2017-03-12 17:33 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-12 17:11 [PATCH 00/14] cpufreq: intel_pstate: Fixes, cleanups and optimizations Rafael J. Wysocki
2017-03-12 17:12 ` [PATCH 01/14] cpufreq: intel_pstate: Update pid_params.sample_rate_ns in pid_param_set() Rafael J. Wysocki
2017-03-13  4:00   ` Viresh Kumar
2017-03-12 17:13 ` [PATCH 02/14] cpufreq: intel_pstate: Drop pointless initialization of PID parameters Rafael J. Wysocki
2017-03-12 17:14 ` Rafael J. Wysocki [this message]
2017-03-12 17:15 ` [PATCH 04/14] cpufreq: intel_pstate: Fold intel_pstate_reset_all_pid() into the caller Rafael J. Wysocki
2017-03-12 17:16 ` [PATCH 05/14] cpufreq: intel_pstate: Clean up intel_pstate_busy_pid_reset() Rafael J. Wysocki
2017-03-12 17:17 ` [PATCH 06/14] cpufreq: intel_pstate: Set HWP sampling interval once Rafael J. Wysocki
2017-03-12 17:18 ` [PATCH 07/14] cpufreq: intel_pstate: Skip unnecessary PID resets on init Rafael J. Wysocki
2017-03-12 17:19 ` [PATCH 08/14] cpufreq: intel_pstate: Drop driver_registered variable Rafael J. Wysocki
2017-03-12 17:20 ` [PATCH 09/14] cpufreq: intel_pstate: Modify check in intel_pstate_update_status() Rafael J. Wysocki
2017-03-12 17:21 ` [PATCH 10/14] cpufreq: intel_pstate: Use different utilization update callbacks Rafael J. Wysocki
2017-03-12 17:22 ` [PATCH 11/14] cpufreq: intel_pstate: Add update_util callback to pstate_funcs Rafael J. Wysocki
2017-03-12 17:23 ` [PATCH 12/14] cpufreq: intel_pstate: Move cpu_defaults definitions Rafael J. Wysocki
2017-03-12 17:23 ` [PATCH 13/14] cpufreq: intel_pstate: Drop struct cpu_defaults Rafael J. Wysocki
2017-03-12 17:26 ` [PATCH 14/14] cpufreq: intel_pstate: Introduce pid_in_use() Rafael J. Wysocki
2017-03-14 16:06 ` [PATCH 07/14] cpufreq: intel_pstate: Skip unnecessary PID resets on init Doug Smythies
2017-03-14 16:40   ` Rafael J. Wysocki
2017-03-14 16:07 ` [PATCH 10/14] cpufreq: intel_pstate: Use different utilization update callbacks Doug Smythies
2017-03-14 16:41   ` 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=2425284.PBSYUI062S@aspire.rjw.lan \
    --to=rjw@rjwysocki.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=srinivas.pandruvada@linux.intel.com \
    --subject='Re: [PATCH 03/14] cpufreq: intel_pstate: Initialize pid_params statically' \
    /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

This is a public inbox, see mirroring instructions
on how to clone and mirror all data and code used for this inbox