43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
|
From deed718125e73b6bf280dcebb80c39108226388c Mon Sep 17 00:00:00 2001
|
||
|
From: Mario Limonciello <mario.limonciello@amd.com>
|
||
|
Date: Thu, 5 Sep 2024 11:30:05 -0500
|
||
|
Subject: cpufreq: amd-pstate: Optimize amd_pstate_update_limits()
|
||
|
|
||
|
Don't take and release the mutex when prefcore isn't present and
|
||
|
avoid initialization of variables that will be initially set
|
||
|
in the function.
|
||
|
|
||
|
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
||
|
Reviewed-by: Perry Yuan <perry.yuan@amd.com>
|
||
|
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
||
|
Reviewed-by: Gautham R. Shenoy <gautham.sheoy@amd.com>
|
||
|
---
|
||
|
drivers/cpufreq/amd-pstate.c | 10 +++++-----
|
||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||
|
|
||
|
--- a/drivers/cpufreq/amd-pstate.c
|
||
|
+++ b/drivers/cpufreq/amd-pstate.c
|
||
|
@@ -836,17 +836,17 @@ static void amd_pstate_update_limits(uns
|
||
|
|
||
|
cpudata = policy->driver_data;
|
||
|
|
||
|
- mutex_lock(&amd_pstate_driver_lock);
|
||
|
- if ((!amd_pstate_prefcore) || (!cpudata->hw_prefcore))
|
||
|
- goto free_cpufreq_put;
|
||
|
+ if (!amd_pstate_prefcore)
|
||
|
+ return;
|
||
|
|
||
|
+ mutex_lock(&amd_pstate_driver_lock);
|
||
|
ret = amd_get_highest_perf(cpu, &cur_high);
|
||
|
if (ret)
|
||
|
goto free_cpufreq_put;
|
||
|
|
||
|
prev_high = READ_ONCE(cpudata->prefcore_ranking);
|
||
|
- if (prev_high != cur_high) {
|
||
|
- highest_perf_changed = true;
|
||
|
+ highest_perf_changed = (prev_high != cur_high);
|
||
|
+ if (highest_perf_changed) {
|
||
|
WRITE_ONCE(cpudata->prefcore_ranking, cur_high);
|
||
|
|
||
|
if (cur_high < CPPC_MAX_PERF)
|