mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2026-01-27 12:47:24 +01:00
tools/power x86_energy_perf_policy: Prefer driver HWP limits
[ Upstream commit 2734fdbc9b ]
When we are successful in using cpufreq min/max limits,
skip setting the raw MSR limits entirely.
This is necessary to avoid undoing any modification that
the cpufreq driver makes to our sysfs request.
eg. intel_pstate may take our request for a limit
that is valid according to HWP.CAP.MIN/MAX and clip
it to be within the range available in PLATFORM_INFO.
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
ece6d9d512
commit
634eaa0614
|
|
@ -62,6 +62,7 @@ unsigned char turbo_update_value;
|
|||
unsigned char update_hwp_epp;
|
||||
unsigned char update_hwp_min;
|
||||
unsigned char update_hwp_max;
|
||||
unsigned char hwp_limits_done_via_sysfs;
|
||||
unsigned char update_hwp_desired;
|
||||
unsigned char update_hwp_window;
|
||||
unsigned char update_hwp_use_pkg;
|
||||
|
|
@ -951,8 +952,10 @@ int ratio_2_sysfs_khz(int ratio)
|
|||
}
|
||||
/*
|
||||
* If HWP is enabled and cpufreq sysfs attribtes are present,
|
||||
* then update sysfs, so that it will not become
|
||||
* stale when we write to MSRs.
|
||||
* then update via sysfs. The intel_pstate driver may modify (clip)
|
||||
* this request, say, when HWP_CAP is outside of PLATFORM_INFO limits,
|
||||
* and the driver-chosen value takes precidence.
|
||||
*
|
||||
* (intel_pstate's max_perf_pct and min_perf_pct will follow cpufreq,
|
||||
* so we don't have to touch that.)
|
||||
*/
|
||||
|
|
@ -1007,6 +1010,8 @@ int update_sysfs(int cpu)
|
|||
if (update_hwp_max)
|
||||
update_cpufreq_scaling_freq(1, cpu, req_update.hwp_max);
|
||||
|
||||
hwp_limits_done_via_sysfs = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1085,10 +1090,10 @@ int update_hwp_request(int cpu)
|
|||
if (debug)
|
||||
print_hwp_request(cpu, &req, "old: ");
|
||||
|
||||
if (update_hwp_min)
|
||||
if (update_hwp_min && !hwp_limits_done_via_sysfs)
|
||||
req.hwp_min = req_update.hwp_min;
|
||||
|
||||
if (update_hwp_max)
|
||||
if (update_hwp_max && !hwp_limits_done_via_sysfs)
|
||||
req.hwp_max = req_update.hwp_max;
|
||||
|
||||
if (update_hwp_desired)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user