]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
thermal: intel: powerclamp: Fix cur_state for multi package system
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Wed, 1 Feb 2023 20:39:41 +0000 (12:39 -0800)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 14 Mar 2023 15:47:34 +0000 (16:47 +0100)
commitf6415a7d36ee4055b72f48dff98b97de5a6338ae
tree72a8e6c3ea70bd7b3ef569cee8533b598769445a
parentb2cd669f2adcb164d37f73a72229bf0b9cf2a920
thermal: intel: powerclamp: Fix cur_state for multi package system

BugLink: https://bugs.launchpad.net/bugs/2011425
commit 8e47363588377e1bdb65e2b020b409cfb44dd260 upstream.

The powerclamp cooling device cur_state shows actual idle observed by
package C-state idle counters. But the implementation is not sufficient
for multi package or multi die system. The cur_state value is incorrect.
On these systems, these counters must be read from each package/die and
somehow aggregate them. But there is no good method for aggregation.

It was not a problem when explicit CPU model addition was required to
enable intel powerclamp. In this way certain CPU models could have
been avoided. But with the removal of CPU model check with the
availability of Package C-state counters, the driver is loaded on most
of the recent systems.

For multi package/die systems, just show the actual target idle state,
the system is trying to achieve. In powerclamp this is the user set
state minus one.

Also there is no use of starting a worker thread for polling package
C-state counters and applying any compensation for multiple package
or multiple die systems.

Fixes: b721ca0d1927 ("thermal/powerclamp: remove cpu whitelist")
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: 4.14+ <stable@vger.kernel.org> # 4.14+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
drivers/thermal/intel/intel_powerclamp.c