lkml.org 
[lkml]   [2014]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy
On 10/15/2014 04:16 PM, Pali Rohár wrote:
> Code which changes policy to powersave changes also max_policy_pct based on
> max_freq. Code which change max_perf_pct has upper limit base on value
> max_policy_pct. When policy is changing from powersave back to performance
> then max_policy_pct is not changed. Which means that changing max_perf_pct is
> not possible to high values if max_freq was too low in powersave policy.
>
> Test case:
>
> $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
> 800000
> $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
> 3300000
> $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
> performance
> $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
> 100
>
> $ echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
> $ echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
> $ echo 20 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
>
> $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
> powersave
> $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
> 800000
> $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
> 20
>
> $ echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
> $ echo 3300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
> $ echo 100 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
>
> $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
> performance
> $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
> 3300000
> $ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
> 24
>
> And now intel_pstate driver allows to set maximal value for max_perf_pct based
> on max_policy_pct which is 24 for previous powersave max_freq 800000.
>
> This patch will set default value for max_policy_pct when setting policy to
> performance so it will allow to set also max value for max_perf_pct.
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>

Acked-by: Dirk Brandewie <dirk.j.brandewie@intel.com>

> Cc: stable@vger.kernel.org
> ---
> drivers/cpufreq/intel_pstate.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index 0668b38..7547ab5 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -714,6 +714,7 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
> if (policy->policy == CPUFREQ_POLICY_PERFORMANCE) {
> limits.min_perf_pct = 100;
> limits.min_perf = int_tofp(1);
> + limits.max_policy_pct = 100;
> limits.max_perf_pct = 100;
> limits.max_perf = int_tofp(1);
> limits.no_turbo = limits.turbo_disabled;
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2014-10-16 17:42    [W:0.064 / U:0.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site