mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
intel_powerclamp: Fix cstate counter detection.
Having all zero cstate count doesn't necesserily mean the cstate counter is no functional. Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
parent
a116776f7b
commit
7734e3ac89
1 changed files with 10 additions and 1 deletions
|
@ -206,6 +206,15 @@ static void find_target_mwait(void)
|
|||
|
||||
}
|
||||
|
||||
static bool has_pkg_state_counter(void)
|
||||
{
|
||||
u64 tmp;
|
||||
return !rdmsrl_safe(MSR_PKG_C2_RESIDENCY, &tmp) ||
|
||||
!rdmsrl_safe(MSR_PKG_C3_RESIDENCY, &tmp) ||
|
||||
!rdmsrl_safe(MSR_PKG_C6_RESIDENCY, &tmp) ||
|
||||
!rdmsrl_safe(MSR_PKG_C7_RESIDENCY, &tmp);
|
||||
}
|
||||
|
||||
static u64 pkg_state_counter(void)
|
||||
{
|
||||
u64 val;
|
||||
|
@ -500,7 +509,7 @@ static int start_power_clamp(void)
|
|||
struct task_struct *thread;
|
||||
|
||||
/* check if pkg cstate counter is completely 0, abort in this case */
|
||||
if (!pkg_state_counter()) {
|
||||
if (!has_pkg_state_counter()) {
|
||||
pr_err("pkg cstate counter not functional, abort\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue