linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] cpufreq: intel_pstate: Show different max frequency with turbo 3 and HWP
@ 2018-07-18 21:51 Srinivas Pandruvada
  2018-07-23 11:35 ` Rafael J. Wysocki
  0 siblings, 1 reply; 2+ messages in thread
From: Srinivas Pandruvada @ 2018-07-18 21:51 UTC (permalink / raw)
  To: lenb, rjw, viresh.kumar; +Cc: linux-pm, linux-kernel, Srinivas Pandruvada

On HWP platforms with Turbo 3.0, the HWP capability max ratio shows the
maximum ratio of that core, which can be different than other cores. If
we show the correct maximum frequency in cpufreq sysfs via
cpuinfo_max_freq and scaling_max_freq then, user can know which cores
can run faster for pinning some high priority tasks.

Currently the max turbo frequency is shown as max frequency, which is
the max of all cores, even if some cores can't reach that frequency
even for single threaded workload.

But it is possible that max ratio in HWP capabilities is set as 0xFF or
some high invalid value (E.g. One KBL NUC). Since the actual performance
can never exceed 1 core turbo frequency from MSR TURBO_RATIO_LIMIT, we
use this as a bound check.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
 drivers/cpufreq/intel_pstate.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index ece120da3353..97096127d015 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -2072,6 +2072,15 @@ static int __intel_pstate_cpu_init(struct cpufreq_policy *policy)
 			cpu->pstate.max_pstate : cpu->pstate.turbo_pstate;
 	policy->cpuinfo.max_freq *= cpu->pstate.scaling;
 
+	if (hwp_active) {
+		unsigned int max_freq;
+
+		max_freq = global.turbo_disabled ?
+			cpu->pstate.max_freq : cpu->pstate.turbo_freq;
+		if (max_freq < policy->cpuinfo.max_freq)
+			policy->cpuinfo.max_freq = max_freq;
+	}
+
 	intel_pstate_init_acpi_perf_limits(policy);
 
 	policy->fast_switch_possible = true;
-- 
2.17.0


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

* Re: [PATCH] cpufreq: intel_pstate: Show different max frequency with turbo 3 and HWP
  2018-07-18 21:51 [PATCH] cpufreq: intel_pstate: Show different max frequency with turbo 3 and HWP Srinivas Pandruvada
@ 2018-07-23 11:35 ` Rafael J. Wysocki
  0 siblings, 0 replies; 2+ messages in thread
From: Rafael J. Wysocki @ 2018-07-23 11:35 UTC (permalink / raw)
  To: Srinivas Pandruvada; +Cc: lenb, viresh.kumar, linux-pm, linux-kernel

On Wednesday, July 18, 2018 11:51:59 PM CEST Srinivas Pandruvada wrote:
> On HWP platforms with Turbo 3.0, the HWP capability max ratio shows the
> maximum ratio of that core, which can be different than other cores. If
> we show the correct maximum frequency in cpufreq sysfs via
> cpuinfo_max_freq and scaling_max_freq then, user can know which cores
> can run faster for pinning some high priority tasks.
> 
> Currently the max turbo frequency is shown as max frequency, which is
> the max of all cores, even if some cores can't reach that frequency
> even for single threaded workload.
> 
> But it is possible that max ratio in HWP capabilities is set as 0xFF or
> some high invalid value (E.g. One KBL NUC). Since the actual performance
> can never exceed 1 core turbo frequency from MSR TURBO_RATIO_LIMIT, we
> use this as a bound check.
> 
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> ---
>  drivers/cpufreq/intel_pstate.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index ece120da3353..97096127d015 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -2072,6 +2072,15 @@ static int __intel_pstate_cpu_init(struct cpufreq_policy *policy)
>  			cpu->pstate.max_pstate : cpu->pstate.turbo_pstate;
>  	policy->cpuinfo.max_freq *= cpu->pstate.scaling;
>  
> +	if (hwp_active) {
> +		unsigned int max_freq;
> +
> +		max_freq = global.turbo_disabled ?
> +			cpu->pstate.max_freq : cpu->pstate.turbo_freq;
> +		if (max_freq < policy->cpuinfo.max_freq)
> +			policy->cpuinfo.max_freq = max_freq;
> +	}
> +
>  	intel_pstate_init_acpi_perf_limits(policy);
>  
>  	policy->fast_switch_possible = true;
> 

Applied, thanks!



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

end of thread, other threads:[~2018-07-23 11:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-18 21:51 [PATCH] cpufreq: intel_pstate: Show different max frequency with turbo 3 and HWP Srinivas Pandruvada
2018-07-23 11:35 ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).