[RESEND] amd-pstate: Only print supported epp values for performance governor

Message ID 20231103094815.16141-1-ayush.jain3@amd.com
State New
Headers
Series [RESEND] amd-pstate: Only print supported epp values for performance governor |

Commit Message

Ayush Jain Nov. 3, 2023, 9:48 a.m. UTC
  show_energy_performance_available_preferences() to show only supported
values which is performance in performance governor policy.

-------Before--------
$ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_driver
amd-pstate-epp
$ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
performance
$ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_preference
performance
$ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_available_preferences
default performance balance_performance balance_power power

-------After--------
$ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_driver
amd-pstate-epp
$ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
performance
$ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_preference
performance
$ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_available_preferences
performance

Fixes: ffa5096a7c33 ("cpufreq: amd-pstate: implement Pstate EPP support for the AMD processors")

Suggested-by: Wyes Karny <wyes.karny@amd.com>
Signed-off-by: Ayush Jain <ayush.jain3@amd.com>
Reviewed-by: Wyes Karny <wyes.karny@amd.com>

---
 drivers/cpufreq/amd-pstate.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
  

Comments

Huang Rui Nov. 3, 2023, 9:59 a.m. UTC | #1
On Fri, Nov 03, 2023 at 05:48:15PM +0800, Jain, Ayush wrote:
> show_energy_performance_available_preferences() to show only supported
> values which is performance in performance governor policy.
> 
> -------Before--------
> $ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_driver
> amd-pstate-epp
> $ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
> performance
> $ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_preference
> performance
> $ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_available_preferences
> default performance balance_performance balance_power power
> 
> -------After--------
> $ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_driver
> amd-pstate-epp
> $ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
> performance
> $ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_preference
> performance
> $ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_available_preferences
> performance
> 
> Fixes: ffa5096a7c33 ("cpufreq: amd-pstate: implement Pstate EPP support for the AMD processors")
> 
> Suggested-by: Wyes Karny <wyes.karny@amd.com>
> Signed-off-by: Ayush Jain <ayush.jain3@amd.com>
> Reviewed-by: Wyes Karny <wyes.karny@amd.com>

Nice catch, thanks for the fix.

Acked-by: Huang Rui <ray.huang@amd.com>

> 
> ---
>  drivers/cpufreq/amd-pstate.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> index 9a1e194d5cf8..e6c5a57662e4 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -850,11 +850,16 @@ static ssize_t show_energy_performance_available_preferences(
>  {
>  	int i = 0;
>  	int offset = 0;
> +	struct amd_cpudata *cpudata = policy->driver_data;
> +
> +	if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
> +		return sysfs_emit_at(buf, offset, "%s\n",
> +				energy_perf_strings[EPP_INDEX_PERFORMANCE]);
>  
>  	while (energy_perf_strings[i] != NULL)
>  		offset += sysfs_emit_at(buf, offset, "%s ", energy_perf_strings[i++]);
>  
> -	sysfs_emit_at(buf, offset, "\n");
> +	offset += sysfs_emit_at(buf, offset, "\n");
>  
>  	return offset;
>  }
> -- 
> 2.34.1
>
  
Rafael J. Wysocki Nov. 29, 2023, 9:06 p.m. UTC | #2
On Fri, Nov 3, 2023 at 11:00 AM Huang Rui <ray.huang@amd.com> wrote:
>
> On Fri, Nov 03, 2023 at 05:48:15PM +0800, Jain, Ayush wrote:
> > show_energy_performance_available_preferences() to show only supported
> > values which is performance in performance governor policy.
> >
> > -------Before--------
> > $ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_driver
> > amd-pstate-epp
> > $ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
> > performance
> > $ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_preference
> > performance
> > $ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_available_preferences
> > default performance balance_performance balance_power power
> >
> > -------After--------
> > $ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_driver
> > amd-pstate-epp
> > $ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
> > performance
> > $ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_preference
> > performance
> > $ cat /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_available_preferences
> > performance
> >
> > Fixes: ffa5096a7c33 ("cpufreq: amd-pstate: implement Pstate EPP support for the AMD processors")
> >
> > Suggested-by: Wyes Karny <wyes.karny@amd.com>
> > Signed-off-by: Ayush Jain <ayush.jain3@amd.com>
> > Reviewed-by: Wyes Karny <wyes.karny@amd.com>
>
> Nice catch, thanks for the fix.
>
> Acked-by: Huang Rui <ray.huang@amd.com>

Applied as 6.7-rc material, thanks!

> >
> > ---
> >  drivers/cpufreq/amd-pstate.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> > index 9a1e194d5cf8..e6c5a57662e4 100644
> > --- a/drivers/cpufreq/amd-pstate.c
> > +++ b/drivers/cpufreq/amd-pstate.c
> > @@ -850,11 +850,16 @@ static ssize_t show_energy_performance_available_preferences(
> >  {
> >       int i = 0;
> >       int offset = 0;
> > +     struct amd_cpudata *cpudata = policy->driver_data;
> > +
> > +     if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
> > +             return sysfs_emit_at(buf, offset, "%s\n",
> > +                             energy_perf_strings[EPP_INDEX_PERFORMANCE]);
> >
> >       while (energy_perf_strings[i] != NULL)
> >               offset += sysfs_emit_at(buf, offset, "%s ", energy_perf_strings[i++]);
> >
> > -     sysfs_emit_at(buf, offset, "\n");
> > +     offset += sysfs_emit_at(buf, offset, "\n");
> >
> >       return offset;
> >  }
> > --
> > 2.34.1
> >
  

Patch

diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 9a1e194d5cf8..e6c5a57662e4 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -850,11 +850,16 @@  static ssize_t show_energy_performance_available_preferences(
 {
 	int i = 0;
 	int offset = 0;
+	struct amd_cpudata *cpudata = policy->driver_data;
+
+	if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
+		return sysfs_emit_at(buf, offset, "%s\n",
+				energy_perf_strings[EPP_INDEX_PERFORMANCE]);
 
 	while (energy_perf_strings[i] != NULL)
 		offset += sysfs_emit_at(buf, offset, "%s ", energy_perf_strings[i++]);
 
-	sysfs_emit_at(buf, offset, "\n");
+	offset += sysfs_emit_at(buf, offset, "\n");
 
 	return offset;
 }