Re: [PATCH 11/19] cpufreq: amd: add amd-pstate performance attributes
From: Fontenot, Nathan <hidden>
Date: 2021-09-08 18:21:06
Also in:
lkml
On 9/8/2021 9:59 AM, Huang Rui wrote:
quoted hunk ↗ jump to hunk
Introduce sysfs attributes to get the different level amd-pstate performances. Signed-off-by: Huang Rui <ray.huang@amd.com> --- drivers/cpufreq/amd-pstate.c | 66 ++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+)diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c index 3c727a22cb69..9c60388d45ed 100644 --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c@@ -647,6 +647,62 @@ static ssize_t show_amd_pstate_min_freq(struct cpufreq_policy *policy, char *buf return ret; } +static ssize_t +show_amd_pstate_highest_perf(struct cpufreq_policy *policy, char *buf)
Here (and in the other functions) the function return value and name should be on the same line.
+{
+ int ret = 0;
+ u32 perf;
+ struct amd_cpudata *cpudata = policy->driver_data;
+
+ perf = READ_ONCE(cpudata->highest_perf);
+
+ ret += sprintf(&buf[ret], "%u\n", perf);
+
+ return ret;Same comment as the previous patch here and in the functions below, just do return sprintf(&buf[ret], "%u\n", perf); and get rid of the intermediary 'ret' variable. -Nathan
quoted hunk ↗ jump to hunk
+} + +static ssize_t +show_amd_pstate_nominal_perf(struct cpufreq_policy *policy, char *buf) +{ + int ret = 0; + u32 perf; + struct amd_cpudata *cpudata = policy->driver_data; + + perf = READ_ONCE(cpudata->nominal_perf); + + ret += sprintf(&buf[ret], "%u\n", perf); + + return ret; +} + +static ssize_t +show_amd_pstate_lowest_nonlinear_perf(struct cpufreq_policy *policy, char *buf) +{ + int ret = 0; + u32 perf; + struct amd_cpudata *cpudata = policy->driver_data; + + perf = READ_ONCE(cpudata->lowest_nonlinear_perf); + + ret += sprintf(&buf[ret], "%u\n", perf); + + return ret; +} + +static ssize_t +show_amd_pstate_lowest_perf(struct cpufreq_policy *policy, char *buf) +{ + int ret = 0; + u32 perf; + struct amd_cpudata *cpudata = policy->driver_data; + + perf = READ_ONCE(cpudata->lowest_perf); + + ret += sprintf(&buf[ret], "%u\n", perf); + + return ret; +} + static ssize_t show_is_amd_pstate_enabled(struct cpufreq_policy *policy, char *buf) {@@ -654,17 +710,27 @@ static ssize_t show_is_amd_pstate_enabled(struct cpufreq_policy *policy, } cpufreq_freq_attr_ro(is_amd_pstate_enabled); + cpufreq_freq_attr_ro(amd_pstate_max_freq); cpufreq_freq_attr_ro(amd_pstate_nominal_freq); cpufreq_freq_attr_ro(amd_pstate_lowest_nonlinear_freq); cpufreq_freq_attr_ro(amd_pstate_min_freq); +cpufreq_freq_attr_ro(amd_pstate_highest_perf); +cpufreq_freq_attr_ro(amd_pstate_nominal_perf); +cpufreq_freq_attr_ro(amd_pstate_lowest_nonlinear_perf); +cpufreq_freq_attr_ro(amd_pstate_lowest_perf); + static struct freq_attr *amd_pstate_attr[] = { &is_amd_pstate_enabled, &amd_pstate_max_freq, &amd_pstate_nominal_freq, &amd_pstate_lowest_nonlinear_freq, &amd_pstate_min_freq, + &amd_pstate_highest_perf, + &amd_pstate_nominal_perf, + &amd_pstate_lowest_nonlinear_perf, + &amd_pstate_lowest_perf, NULL, };-- 2.25.1