cpufreq: intel_pstate: Fix limits->max_policy_pct rounding error
authorPrarit Bhargava <prarit@redhat.com>
Fri, 20 Nov 2015 23:47:56 +0000 (18:47 -0500)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 23 Nov 2015 22:14:10 +0000 (23:14 +0100)
commit8478f53946f01b8365a206ac58a2640e3e408fb2
tree48bc2f7b6e6cda141b7685d89f3750c669c62ae0
parentf344dae0fe9f88d3c7ec45f2d7bba84d6ce1ac00
cpufreq: intel_pstate: Fix limits->max_policy_pct rounding error

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.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/intel_pstate.c