From: Perry Yuan <perry.yuan@amd.com>
To: <rafael.j.wysocki@intel.com>, <Mario.Limonciello@amd.com>,
<viresh.kumar@linaro.org>, <gautham.shenoy@amd.com>
Cc: <Alexander.Deucher@amd.com>, <Xinmei.Huang@amd.com>,
<Xiaojian.Du@amd.com>, <Li.Meng@amd.com>,
<linux-pm@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v13 6/9] cpufreq: amd-pstate: Add set_boost callback for active mode
Date: Sat, 22 Jun 2024 00:51:01 +0800 [thread overview]
Message-ID: <e51aa7d6bf34455d256dbb6041d56bc8ee57b3a5.1718988436.git.perry.yuan@amd.com> (raw)
In-Reply-To: <cover.1718988436.git.perry.yuan@amd.com>
Add support for the set_boost callback in the active mode driver to
enable boost control via the cpufreq core. This ensures a consistent
boost control interface across all pstate modes, including passive
mode, guided mode, and active mode.
With this addition, all three pstate modes can support the same boost
control interface with unique interface and global CPB control. Each
CPU also supports individual boost control, allowing global CPB to
change all cores' boost states simultaneously. Specific CPUs can
update their boost states separately, ensuring all cores' boost
states are synchronized.
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Perry Yuan <perry.yuan@amd.com>
Acked-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
---
drivers/cpufreq/amd-pstate.c | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 6710b3c28cda..02767230524e 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -703,20 +703,11 @@ static int amd_pstate_set_boost(struct cpufreq_policy *policy, int state)
pr_err("Boost mode is not supported by this processor or SBIOS\n");
return -ENOTSUPP;
}
+ mutex_lock(&amd_pstate_driver_lock);
+ ret = amd_pstate_cpu_boost(policy->cpu, state);
+ mutex_unlock(&amd_pstate_driver_lock);
- if (state)
- policy->cpuinfo.max_freq = cpudata->max_freq;
- else
- policy->cpuinfo.max_freq = cpudata->nominal_freq * 1000;
-
- policy->max = policy->cpuinfo.max_freq;
-
- ret = freq_qos_update_request(&cpudata->req[1],
- policy->cpuinfo.max_freq);
- if (ret < 0)
- return ret;
-
- return 0;
+ return ret < 0 ? ret : 0;
}
static int amd_pstate_init_boost_support(struct amd_cpudata *cpudata)
@@ -1888,6 +1879,7 @@ static struct cpufreq_driver amd_pstate_epp_driver = {
.resume = amd_pstate_epp_resume,
.update_limits = amd_pstate_update_limits,
.init_boost = amd_pstate_init_boost,
+ .set_boost = amd_pstate_set_boost,
.name = "amd-pstate-epp",
.attr = amd_pstate_epp_attr,
};
--
2.34.1
next prev parent reply other threads:[~2024-06-21 16:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-21 16:50 [PATCH v13 0/9] AMD Pstate Driver Core Performance Boost Perry Yuan
2024-06-21 16:50 ` [PATCH v13 1/9] cpufreq: acpi: move MSR_K7_HWCR_CPB_DIS_BIT into msr-index.h Perry Yuan
2024-06-21 16:50 ` [PATCH v13 2/9] cpufreq: simplify boolean parsing with kstrtobool in store function Perry Yuan
2024-06-21 16:50 ` [PATCH v13 3/9] cpufreq: introduce init_boost callback to initialize boost state for pstate drivers Perry Yuan
2024-06-24 21:47 ` Mario Limonciello
2024-06-21 16:50 ` [PATCH v13 4/9] cpufreq: amd-pstate: initialize new core precision boost state Perry Yuan
2024-06-21 16:51 ` [PATCH v13 5/9] cpufreq: amd-pstate: implement cpb_boost sysfs entry for boost control Perry Yuan
2024-06-21 16:51 ` Perry Yuan [this message]
2024-06-21 16:51 ` [PATCH v13 7/9] cpufreq:amd-pstate: Cap the CPPC.max_perf to nominal_perf if CPB is off Perry Yuan
2024-06-21 16:51 ` [PATCH v13 8/9] Documentation: cpufreq: amd-pstate: introduce the new cpu boost control method Perry Yuan
2024-06-21 16:51 ` [PATCH v13 9/9] Documentation: cpufreq: amd-pstate: update doc for Per CPU " Perry Yuan
2024-06-21 17:27 ` [PATCH v13 0/9] AMD Pstate Driver Core Performance Boost Mario Limonciello
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e51aa7d6bf34455d256dbb6041d56bc8ee57b3a5.1718988436.git.perry.yuan@amd.com \
--to=perry.yuan@amd.com \
--cc=Alexander.Deucher@amd.com \
--cc=Li.Meng@amd.com \
--cc=Mario.Limonciello@amd.com \
--cc=Xiaojian.Du@amd.com \
--cc=Xinmei.Huang@amd.com \
--cc=gautham.shenoy@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®