cpufreq: powernv: Set the pstate of the last hotplugged out cpu in policy->cpus to...
authorPreeti U Murthy <preeti@linux.vnet.ibm.com>
Mon, 29 Sep 2014 13:47:53 +0000 (15:47 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 29 Sep 2014 13:47:53 +0000 (15:47 +0200)
commitb120339c787b243cdbe3f67401b4aa5625d88ff3
tree4569887e9616b3a639a4171e9837d7f92cf27b25
parent789ca243740de236a39146fc3d3bbaeb4d3ae0ba
cpufreq: powernv: Set the pstate of the last hotplugged out cpu in policy->cpus to minimum

Its possible today that the pstate of a core is held at a high even after the
entire core is hotplugged out if a load had just run on  the hotplugged cpu. This is
fair, since it is assumed that the pstate does not matter to a cpu in a deep idle
state, which is the expected state of a hotplugged core on powerpc. However on powerpc,
the pstate at a socket level is held at the maximum of the pstates of each core. Even
if the pstates of the active cores on that socket is low, the socket pstate is held
high due to the pstate of the hotplugged core in the above mentioned scenario. This
can cost significant amount of power loss for no good.

Besides, since it is a non active core, nothing can be done from the kernel's end
to set the frequency of the core right. Hence make use of the stop_cpu callback
to explicitly set the pstate of the core to a minimum when the last cpu of the
core gets hotplugged out.

Signed-off-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/powernv-cpufreq.c