Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751888AbaJPIRW (ORCPT ); Thu, 16 Oct 2014 04:17:22 -0400 Received: from mail-ob0-f181.google.com ([209.85.214.181]:35743 "EHLO mail-ob0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751372AbaJPIRR convert rfc822-to-8bit (ORCPT ); Thu, 16 Oct 2014 04:17:17 -0400 MIME-Version: 1.0 In-Reply-To: <1413415011-31290-1-git-send-email-pali.rohar@gmail.com> References: <1413415011-31290-1-git-send-email-pali.rohar@gmail.com> Date: Thu, 16 Oct 2014 13:47:16 +0530 Message-ID: Subject: Re: [PATCH] cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy From: Viresh Kumar To: =?UTF-8?Q?Pali_Roh=C3=A1r?= , Dirk Brandewie Cc: "Rafael J. Wysocki" , "linux-pm@vger.kernel.org" , Linux Kernel Mailing List Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Cc'ing Dirk. On 16 October 2014 04:46, 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 > 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; > -- > 1.7.9.5 > -- 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/