From: Prarit Bhargava <prarit@redhat.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: linux-kernel@vger.kernel.org,
Srinivas Pandruvada <srinivas.pandruvada@intel.com>,
Len Brown <len.brown@intel.com>,
Alexandra Yates <alexandra.yates@intel.com>,
Kristen Carlson Accardi <kristen@linux.intel.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
linux-pm@vger.kernel.org
Subject: Re: [PATCH 1/2] cpufreq, intel_pstate, Fix limits->max_policy_pct rounding error
Date: Fri, 20 Nov 2015 10:10:00 -0500 [thread overview]
Message-ID: <564F37C8.60307@redhat.com> (raw)
In-Reply-To: <20151120131833.GD3957@ubuntu>
On 11/20/2015 08:18 AM, Viresh Kumar wrote:
> On 20-11-15, 07:32, Prarit Bhargava wrote:
>> I have a Intel (6,63) processor with a "marketing" frequency (from
>> /proc/cpuinfo) of 2100MHz, and a max turbo frequency of 2600MHz. I
>> can execute
>>
>> cpupower frequency-set -g powersave --min 1200MHz --max 2100MHz
>>
>> and the max_freq_pct is set to 80. When adding load to the system I noticed
>> that the cpu frequency only reached 2000MHZ and not 2100MHz as expected.
>>
>> This is because limits->max_policy_pct is calculated as 2100 * 100 /2600 = 80.7
>> and is rounded down to 80 when it should be rounded up to 81. This patch
>> adds a DIV_ROUND_UP() which will return the correct value.
>>
>> Cc: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
>> Cc: Len Brown <len.brown@intel.com>
>> Cc: Alexandra Yates <alexandra.yates@intel.com>
>> Cc: Kristen Carlson Accardi <kristen@linux.intel.com>
>> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
>> Cc: Viresh Kumar <viresh.kumar@linaro.org>
>> Cc: linux-pm@vger.kernel.org
>> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
>> ---
>> drivers/cpufreq/intel_pstate.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
>> index 001a532..6b63374 100644
>> --- a/drivers/cpufreq/intel_pstate.c
>> +++ b/drivers/cpufreq/intel_pstate.c
>> @@ -1110,6 +1110,8 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
>> limits->min_policy_pct = clamp_t(int, limits->min_policy_pct, 0 , 100);
>> limits->max_policy_pct = (policy->max * 100) / policy->cpuinfo.max_freq;
>
> Forgot to remove this line ?
>
>> limits->max_policy_pct = clamp_t(int, limits->max_policy_pct, 0 , 100);
>
> And put this after the later one ?
>
>> + limits->max_policy_pct = DIV_ROUND_UP(policy->max * 100,
>> + policy->cpuinfo.max_freq);
>>
>> /* Normalize user input to [min_policy_pct, max_policy_pct] */
>> limits->min_perf_pct = max(limits->min_policy_pct,
>
> Sure you tested it ? :)
Oops -- and yeah, tested. It works because I rewrite the value of
max_policy_pct :). I'll repost shortly.
P.
>
next prev parent reply other threads:[~2015-11-20 15:10 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-20 12:32 [PATCH 0/2 v2] cpufreq, intel_pstate, Fix rounding errors Prarit Bhargava
2015-11-20 12:32 ` [PATCH 1/2] cpufreq, intel_pstate, Fix limits->max_policy_pct rounding error Prarit Bhargava
2015-11-20 13:18 ` Viresh Kumar
2015-11-20 15:10 ` Prarit Bhargava [this message]
2015-11-20 15:19 ` Viresh Kumar
2015-11-20 15:43 ` Prarit Bhargava
2015-11-20 20:02 ` Pandruvada, Srinivas
2015-11-20 20:02 ` Pandruvada, Srinivas
2015-11-20 23:47 ` Prarit Bhargava
2015-11-20 23:57 ` Pandruvada, Srinivas
2015-11-20 23:57 ` Pandruvada, Srinivas
2015-11-20 12:32 ` [PATCH 2/2] cpufreq, intel_pstate, fix limits->max_perf " Prarit Bhargava
-- strict thread matches above, loose matches on Subject: below --
2015-11-20 23:47 [PATCH 0/2 v3] cpufreq, intel_pstate, Fix rounding errors Prarit Bhargava
2015-11-20 23:47 ` [PATCH 1/2] cpufreq, intel_pstate, Fix limits->max_policy_pct rounding error Prarit Bhargava
2015-11-21 0:04 ` Pandruvada, Srinivas
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=564F37C8.60307@redhat.com \
--to=prarit@redhat.com \
--cc=alexandra.yates@intel.com \
--cc=kristen@linux.intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=srinivas.pandruvada@intel.com \
--cc=viresh.kumar@linaro.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.