mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/3] cpufreq: intel_pstate: trivial improvements
@ 2016-06-27  9:26 Jisheng Zhang
  2016-06-27  9:26 ` [PATCH 1/3] intel_pstate: Fix incorrect placement of __initdata Jisheng Zhang
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Jisheng Zhang @ 2016-06-27  9:26 UTC (permalink / raw)
  To: srinivas.pandruvada, lenb, rjw, viresh.kumar
  Cc: linux-pm, linux-kernel, Jisheng Zhang

The first patch fixes incorrect placement of __initdata

The second patch is to add __init/__initdata marker to some functions
or varaiables so that we can discard them.

The third patch declares pid_params/pstate_funcs/hwp_active as
__read_mostly, under the fact that they are mostly read and not
written to.


Jisheng Zhang (3):
  intel_pstate: Fix incorrect placement of __initdata
  intel_pstate: add __init/__initdata marker to some functions/variables
  intel_pstate: Declare pid_params/pstate_funcs/hwp_active __read_mostly

 drivers/cpufreq/intel_pstate.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

-- 
2.8.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] intel_pstate: Fix incorrect placement of __initdata
  2016-06-27  9:26 [PATCH 0/3] cpufreq: intel_pstate: trivial improvements Jisheng Zhang
@ 2016-06-27  9:26 ` Jisheng Zhang
  2016-06-27  9:26 ` [PATCH 2/3] intel_pstate: add __init/__initdata marker to some functions/variables Jisheng Zhang
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Jisheng Zhang @ 2016-06-27  9:26 UTC (permalink / raw)
  To: srinivas.pandruvada, lenb, rjw, viresh.kumar
  Cc: linux-pm, linux-kernel, Jisheng Zhang

__initdata should be placed between the variable name and equal sign
(if there is) for the variable to be placed in the intended section.

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
---
 drivers/cpufreq/intel_pstate.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index fe9dc17..44099e9 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -1574,9 +1574,9 @@ static struct cpufreq_driver intel_pstate_driver = {
 	.name		= "intel_pstate",
 };
 
-static int __initdata no_load;
-static int __initdata no_hwp;
-static int __initdata hwp_only;
+static int no_load __initdata;
+static int no_hwp __initdata;
+static int hwp_only __initdata;
 static unsigned int force_load;
 
 static int intel_pstate_msrs_not_valid(void)
-- 
2.8.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/3] intel_pstate: add __init/__initdata marker to some functions/variables
  2016-06-27  9:26 [PATCH 0/3] cpufreq: intel_pstate: trivial improvements Jisheng Zhang
  2016-06-27  9:26 ` [PATCH 1/3] intel_pstate: Fix incorrect placement of __initdata Jisheng Zhang
@ 2016-06-27  9:26 ` Jisheng Zhang
  2016-06-27  9:26 ` [PATCH 3/3] intel_pstate: Declare pid_params/pstate_funcs/hwp_active __read_mostly Jisheng Zhang
  2016-06-27  9:43 ` [PATCH 0/3] cpufreq: intel_pstate: trivial improvements Viresh Kumar
  3 siblings, 0 replies; 5+ messages in thread
From: Jisheng Zhang @ 2016-06-27  9:26 UTC (permalink / raw)
  To: srinivas.pandruvada, lenb, rjw, viresh.kumar
  Cc: linux-pm, linux-kernel, Jisheng Zhang

These functions/variables are not needed after booting, so mark them
as __init or __initdata.

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
---
 drivers/cpufreq/intel_pstate.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 44099e9..861bcba 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -1355,7 +1355,7 @@ static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
 };
 MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids);
 
-static const struct x86_cpu_id intel_pstate_cpu_oob_ids[] = {
+static const struct x86_cpu_id intel_pstate_cpu_oob_ids[] __initconst = {
 	ICPU(0x56, core_params),
 	{}
 };
@@ -1577,9 +1577,9 @@ static struct cpufreq_driver intel_pstate_driver = {
 static int no_load __initdata;
 static int no_hwp __initdata;
 static int hwp_only __initdata;
-static unsigned int force_load;
+static unsigned int force_load __initdata;
 
-static int intel_pstate_msrs_not_valid(void)
+static int __init intel_pstate_msrs_not_valid(void)
 {
 	if (!pstate_funcs.get_max() ||
 	    !pstate_funcs.get_min() ||
@@ -1589,7 +1589,7 @@ static int intel_pstate_msrs_not_valid(void)
 	return 0;
 }
 
-static void copy_pid_params(struct pstate_adjust_policy *policy)
+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;
@@ -1600,7 +1600,7 @@ static void copy_pid_params(struct pstate_adjust_policy *policy)
 	pid_params.setpoint = policy->setpoint;
 }
 
-static void copy_cpu_funcs(struct pstate_funcs *funcs)
+static void __init copy_cpu_funcs(struct pstate_funcs *funcs)
 {
 	pstate_funcs.get_max   = funcs->get_max;
 	pstate_funcs.get_max_physical = funcs->get_max_physical;
@@ -1615,7 +1615,7 @@ static void copy_cpu_funcs(struct pstate_funcs *funcs)
 
 #ifdef CONFIG_ACPI
 
-static bool intel_pstate_no_acpi_pss(void)
+static bool __init intel_pstate_no_acpi_pss(void)
 {
 	int i;
 
@@ -1644,7 +1644,7 @@ static bool intel_pstate_no_acpi_pss(void)
 	return true;
 }
 
-static bool intel_pstate_has_acpi_ppc(void)
+static bool __init intel_pstate_has_acpi_ppc(void)
 {
 	int i;
 
@@ -1672,7 +1672,7 @@ struct hw_vendor_info {
 };
 
 /* Hardware vendor-specific info that has its own power management modes */
-static struct hw_vendor_info vendor_info[] = {
+static struct hw_vendor_info vendor_info[] __initdata = {
 	{1, "HP    ", "ProLiant", PSS},
 	{1, "ORACLE", "X4-2    ", PPC},
 	{1, "ORACLE", "X4-2L   ", PPC},
@@ -1691,7 +1691,7 @@ static struct hw_vendor_info vendor_info[] = {
 	{0, "", ""},
 };
 
-static bool intel_pstate_platform_pwr_mgmt_exists(void)
+static bool __init intel_pstate_platform_pwr_mgmt_exists(void)
 {
 	struct acpi_table_header hdr;
 	struct hw_vendor_info *v_info;
-- 
2.8.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 3/3] intel_pstate: Declare pid_params/pstate_funcs/hwp_active __read_mostly
  2016-06-27  9:26 [PATCH 0/3] cpufreq: intel_pstate: trivial improvements Jisheng Zhang
  2016-06-27  9:26 ` [PATCH 1/3] intel_pstate: Fix incorrect placement of __initdata Jisheng Zhang
  2016-06-27  9:26 ` [PATCH 2/3] intel_pstate: add __init/__initdata marker to some functions/variables Jisheng Zhang
@ 2016-06-27  9:26 ` Jisheng Zhang
  2016-06-27  9:43 ` [PATCH 0/3] cpufreq: intel_pstate: trivial improvements Viresh Kumar
  3 siblings, 0 replies; 5+ messages in thread
From: Jisheng Zhang @ 2016-06-27  9:26 UTC (permalink / raw)
  To: srinivas.pandruvada, lenb, rjw, viresh.kumar
  Cc: linux-pm, linux-kernel, Jisheng Zhang

pid_params is written once by copy_pid_params() during initialization,
and thereafter is mostly read by hot path intel_pstate_update_util().
The read of pid_params gets more after commit a4675fbc4a7a ("cpufreq:
intel_pstate: Replace timers with utilization update callbacks")

pstate_funcs is written once by copy_cpu_funcs() during initialization,
and thereafter is mostly read by hot path intel_pstate_update_util()

hwp_active is written to once and thereafter is read by the driver
during initialization and thereafter is mostly read by hot path
intel_pstate_update_util().

The fact that they are mostly read and not written to makes them
candidates for __read_mostly declarations.

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
---
 drivers/cpufreq/intel_pstate.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 861bcba..2eda50d 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -281,9 +281,9 @@ struct cpu_defaults {
 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;
-static struct pstate_funcs pstate_funcs;
-static int hwp_active;
+static struct pstate_adjust_policy pid_params __read_mostly;
+static struct pstate_funcs pstate_funcs __read_mostly;
+static int hwp_active __read_mostly;
 
 #ifdef CONFIG_ACPI
 static bool acpi_ppc;
-- 
2.8.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/3] cpufreq: intel_pstate: trivial improvements
  2016-06-27  9:26 [PATCH 0/3] cpufreq: intel_pstate: trivial improvements Jisheng Zhang
                   ` (2 preceding siblings ...)
  2016-06-27  9:26 ` [PATCH 3/3] intel_pstate: Declare pid_params/pstate_funcs/hwp_active __read_mostly Jisheng Zhang
@ 2016-06-27  9:43 ` Viresh Kumar
  3 siblings, 0 replies; 5+ messages in thread
From: Viresh Kumar @ 2016-06-27  9:43 UTC (permalink / raw)
  To: Jisheng Zhang; +Cc: srinivas.pandruvada, lenb, rjw, linux-pm, linux-kernel

On 27-06-16, 17:26, Jisheng Zhang wrote:
> The first patch fixes incorrect placement of __initdata
> 
> The second patch is to add __init/__initdata marker to some functions
> or varaiables so that we can discard them.
> 
> The third patch declares pid_params/pstate_funcs/hwp_active as
> __read_mostly, under the fact that they are mostly read and not
> written to.

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

-- 
viresh

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-06-27  9:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-27  9:26 [PATCH 0/3] cpufreq: intel_pstate: trivial improvements Jisheng Zhang
2016-06-27  9:26 ` [PATCH 1/3] intel_pstate: Fix incorrect placement of __initdata Jisheng Zhang
2016-06-27  9:26 ` [PATCH 2/3] intel_pstate: add __init/__initdata marker to some functions/variables Jisheng Zhang
2016-06-27  9:26 ` [PATCH 3/3] intel_pstate: Declare pid_params/pstate_funcs/hwp_active __read_mostly Jisheng Zhang
2016-06-27  9:43 ` [PATCH 0/3] cpufreq: intel_pstate: trivial improvements Viresh Kumar

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

all inboxes | Powered by JetHome®