[v3,2/8] Documentation: amd-pstate: add EPP profiles introduction

Message ID 20221107175705.2207842-3-Perry.Yuan@amd.com
State New
Headers
Series Implement AMD Pstate EPP Driver |

Commit Message

Yuan, Perry Nov. 7, 2022, 5:56 p.m. UTC
  The patch add AMD pstate EPP feature introduction and what EPP
preference supported for AMD processors.

User can get supported list from
energy_performance_available_preferences attribute file, or update
current profile to energy_performance_preference file

1) See all EPP profiles
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences
default performance balance_performance balance_power power

2) Check current EPP profile
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
performance

3) Set new EPP profile
$ sudo bash -c "echo power > /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference"

Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
---
 Documentation/admin-guide/pm/amd-pstate.rst | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
  

Comments

Mario Limonciello Nov. 7, 2022, 6:33 p.m. UTC | #1
On 11/7/2022 11:56, Perry Yuan wrote:
> The patch add AMD pstate EPP feature introduction and what EPP
> preference supported for AMD processors.
> 
> User can get supported list from
> energy_performance_available_preferences attribute file, or update
> current profile to energy_performance_preference file
> 
> 1) See all EPP profiles
> $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences
> default performance balance_performance balance_power power
> 
> 2) Check current EPP profile
> $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
> performance
> 
> 3) Set new EPP profile
> $ sudo bash -c "echo power > /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference"
> 
> Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
> ---
>   Documentation/admin-guide/pm/amd-pstate.rst | 19 +++++++++++++++++++
>   1 file changed, 19 insertions(+)
> 
> diff --git a/Documentation/admin-guide/pm/amd-pstate.rst b/Documentation/admin-guide/pm/amd-pstate.rst
> index 8f3d30c5a0d8..78c6525d5a49 100644
> --- a/Documentation/admin-guide/pm/amd-pstate.rst
> +++ b/Documentation/admin-guide/pm/amd-pstate.rst
> @@ -262,6 +262,25 @@ lowest non-linear performance in `AMD CPPC Performance Capability
>   <perf_cap_>`_.)
>   This attribute is read-only.
>   > +``energy_performance_available_preferences``
> +
> +All the supported EPP preference could be selected, List of the strings that
> +can be set to the ``energy_performance_preference`` attribute
> +those different profiles represent different energy vs efficiency hints provided
> +to low-level firmware
> +however, the ``default`` represents the epp value is set by platform firmware
> +This attribute is read-only.

My proposal at rewording it.

A list of all the supported EPP preferences that could be used for 
``energy_performance_preference` on this system.
These profiles represent different hints that are provided
to the low-level firmware about the user's desired energy vs efficiency 
tradeoff.  ``default`` represents the epp value is set by platform 
firmware. This attribute is read-only.


> +
> +``energy_performance_preference``
> +
> +The current energy performance preference can be read from this attribute.
> +and user can change current preference according to energy or performance needs
> +Please get all support profiles list from
> +``energy_performance_available_preferences`` attribute, all the profiles are
> +integer values defined between 0 to 255 when EPP feature is enabled by platform
> +firmware, if EPP feature is disabled, driver will ignore the written value
> +This attribute is read-write.
> +
>   Other performance and frequency values can be read back from
>   ``/sys/devices/system/cpu/cpuX/acpi_cppc/``, see :ref:`cppc_sysfs`.
>
  
Rafael J. Wysocki Nov. 10, 2022, 2:57 p.m. UTC | #2
On Mon, Nov 7, 2022 at 7:02 PM Perry Yuan <Perry.Yuan@amd.com> wrote:
>
> The patch add AMD pstate EPP feature introduction and what EPP
> preference supported for AMD processors.
>
> User can get supported list from
> energy_performance_available_preferences attribute file, or update
> current profile to energy_performance_preference file
>
> 1) See all EPP profiles
> $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences
> default performance balance_performance balance_power power
>
> 2) Check current EPP profile
> $ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
> performance
>
> 3) Set new EPP profile
> $ sudo bash -c "echo power > /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference"
>
> Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
> ---
>  Documentation/admin-guide/pm/amd-pstate.rst | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/Documentation/admin-guide/pm/amd-pstate.rst b/Documentation/admin-guide/pm/amd-pstate.rst
> index 8f3d30c5a0d8..78c6525d5a49 100644
> --- a/Documentation/admin-guide/pm/amd-pstate.rst
> +++ b/Documentation/admin-guide/pm/amd-pstate.rst
> @@ -262,6 +262,25 @@ lowest non-linear performance in `AMD CPPC Performance Capability
>  <perf_cap_>`_.)
>  This attribute is read-only.
>
> +``energy_performance_available_preferences``
> +
> +All the supported EPP preference could be selected, List of the strings that
> +can be set to the ``energy_performance_preference`` attribute
> +those different profiles represent different energy vs efficiency hints provided
> +to low-level firmware
> +however, the ``default`` represents the epp value is set by platform firmware
> +This attribute is read-only.
> +
> +``energy_performance_preference``
> +
> +The current energy performance preference can be read from this attribute.
> +and user can change current preference according to energy or performance needs
> +Please get all support profiles list from
> +``energy_performance_available_preferences`` attribute, all the profiles are
> +integer values defined between 0 to 255 when EPP feature is enabled by platform
> +firmware, if EPP feature is disabled, driver will ignore the written value
> +This attribute is read-write.
> +
>  Other performance and frequency values can be read back from
>  ``/sys/devices/system/cpu/cpuX/acpi_cppc/``, see :ref:`cppc_sysfs`.
>
> --

So the interface is the same as for intel_pstate AFAICS, which is
good, because it is all consistent.

However, there is some code duplication introduced in the subsequent
patches and that may be a problem from the perspective of maintaining
that consistency in the future.

Have you at least considered introducing a common EPP support header
file that could be used by both intel_pstate and amd_pstate?
  
Yuan, Perry Nov. 10, 2022, 3:07 p.m. UTC | #3
[AMD Official Use Only - General]

Hi Rafael. 

> -----Original Message-----
> From: Rafael J. Wysocki <rafael@kernel.org>
> Sent: Thursday, November 10, 2022 10:58 PM
> To: Yuan, Perry <Perry.Yuan@amd.com>
> Cc: rafael.j.wysocki@intel.com; Huang, Ray <Ray.Huang@amd.com>;
> viresh.kumar@linaro.org; Sharma, Deepak <Deepak.Sharma@amd.com>;
> Limonciello, Mario <Mario.Limonciello@amd.com>; Fontenot, Nathan
> <Nathan.Fontenot@amd.com>; Deucher, Alexander
> <Alexander.Deucher@amd.com>; Huang, Shimmer
> <Shimmer.Huang@amd.com>; Du, Xiaojian <Xiaojian.Du@amd.com>; Meng,
> Li (Jassmine) <Li.Meng@amd.com>; linux-pm@vger.kernel.org; linux-
> kernel@vger.kernel.org
> Subject: Re: [PATCH v3 2/8] Documentation: amd-pstate: add EPP profiles
> introduction
> 
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
> 
> 
> On Mon, Nov 7, 2022 at 7:02 PM Perry Yuan <Perry.Yuan@amd.com> wrote:
> >
> > The patch add AMD pstate EPP feature introduction and what EPP
> > preference supported for AMD processors.
> >
> > User can get supported list from
> > energy_performance_available_preferences attribute file, or update
> > current profile to energy_performance_preference file
> >
> > 1) See all EPP profiles
> > $ sudo cat
> >
> /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_pr
> ef
> > erences default performance balance_performance balance_power power
> >
> > 2) Check current EPP profile
> > $ sudo cat
> > /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
> > performance
> >
> > 3) Set new EPP profile
> > $ sudo bash -c "echo power >
> /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference"
> >
> > Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
> > ---
> >  Documentation/admin-guide/pm/amd-pstate.rst | 19
> +++++++++++++++++++
> >  1 file changed, 19 insertions(+)
> >
> > diff --git a/Documentation/admin-guide/pm/amd-pstate.rst
> > b/Documentation/admin-guide/pm/amd-pstate.rst
> > index 8f3d30c5a0d8..78c6525d5a49 100644
> > --- a/Documentation/admin-guide/pm/amd-pstate.rst
> > +++ b/Documentation/admin-guide/pm/amd-pstate.rst
> > @@ -262,6 +262,25 @@ lowest non-linear performance in `AMD CPPC
> > Performance Capability
> >  <perf_cap_>`_.)
> >  This attribute is read-only.
> >
> > +``energy_performance_available_preferences``
> > +
> > +All the supported EPP preference could be selected, List of the
> > +strings that can be set to the ``energy_performance_preference``
> > +attribute those different profiles represent different energy vs
> > +efficiency hints provided to low-level firmware however, the
> > +``default`` represents the epp value is set by platform firmware This
> > +attribute is read-only.
> > +
> > +``energy_performance_preference``
> > +
> > +The current energy performance preference can be read from this
> attribute.
> > +and user can change current preference according to energy or
> > +performance needs Please get all support profiles list from
> > +``energy_performance_available_preferences`` attribute, all the
> > +profiles are integer values defined between 0 to 255 when EPP feature
> > +is enabled by platform firmware, if EPP feature is disabled, driver
> > +will ignore the written value This attribute is read-write.
> > +
> >  Other performance and frequency values can be read back from
> > ``/sys/devices/system/cpu/cpuX/acpi_cppc/``, see :ref:`cppc_sysfs`.
> >
> > --
> 
> So the interface is the same as for intel_pstate AFAICS, which is good,
> because it is all consistent.
> 
> However, there is some code duplication introduced in the subsequent
> patches and that may be a problem from the perspective of maintaining that
> consistency in the future.
> 
> Have you at least considered introducing a common EPP support header file
> that could be used by both intel_pstate and amd_pstate?

I will send the V4 today, that will change the epp value set and get interface 
To be compatible with the Gnome power preference setting sysfs call, I use the same profile names.
But V4 patch will there is no raw_epp  support as the suggested by Mario. 
I  will also think about what else can make as common code in the driver scale. 
Thanks for your suggestions. 

Perry.
  
Yuan, Perry Nov. 13, 2022, 4:23 p.m. UTC | #4
[AMD Official Use Only - General]

Hi Mario

> -----Original Message-----
> From: Limonciello, Mario <Mario.Limonciello@amd.com>
> Sent: Tuesday, November 8, 2022 2:34 AM
> To: Yuan, Perry <Perry.Yuan@amd.com>; rafael.j.wysocki@intel.com; Huang,
> Ray <Ray.Huang@amd.com>; viresh.kumar@linaro.org
> Cc: Sharma, Deepak <Deepak.Sharma@amd.com>; Fontenot, Nathan
> <Nathan.Fontenot@amd.com>; Deucher, Alexander
> <Alexander.Deucher@amd.com>; Huang, Shimmer
> <Shimmer.Huang@amd.com>; Du, Xiaojian <Xiaojian.Du@amd.com>; Meng,
> Li (Jassmine) <Li.Meng@amd.com>; linux-pm@vger.kernel.org; linux-
> kernel@vger.kernel.org
> Subject: Re: [PATCH v3 2/8] Documentation: amd-pstate: add EPP profiles
> introduction
> 
> On 11/7/2022 11:56, Perry Yuan wrote:
> > The patch add AMD pstate EPP feature introduction and what EPP
> > preference supported for AMD processors.
> >
> > User can get supported list from
> > energy_performance_available_preferences attribute file, or update
> > current profile to energy_performance_preference file
> >
> > 1) See all EPP profiles
> > $ sudo cat
> >
> /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_pref
> > erences default performance balance_performance balance_power power
> >
> > 2) Check current EPP profile
> > $ sudo cat
> > /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference
> > performance
> >
> > 3) Set new EPP profile
> > $ sudo bash -c "echo power >
> /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference"
> >
> > Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
> > ---
> >   Documentation/admin-guide/pm/amd-pstate.rst | 19
> +++++++++++++++++++
> >   1 file changed, 19 insertions(+)
> >
> > diff --git a/Documentation/admin-guide/pm/amd-pstate.rst
> > b/Documentation/admin-guide/pm/amd-pstate.rst
> > index 8f3d30c5a0d8..78c6525d5a49 100644
> > --- a/Documentation/admin-guide/pm/amd-pstate.rst
> > +++ b/Documentation/admin-guide/pm/amd-pstate.rst
> > @@ -262,6 +262,25 @@ lowest non-linear performance in `AMD CPPC
> Performance Capability
> >   <perf_cap_>`_.)
> >   This attribute is read-only.
> >   > +``energy_performance_available_preferences``
> > +
> > +All the supported EPP preference could be selected, List of the
> > +strings that can be set to the ``energy_performance_preference``
> > +attribute those different profiles represent different energy vs
> > +efficiency hints provided to low-level firmware however, the
> > +``default`` represents the epp value is set by platform firmware This
> > +attribute is read-only.
> 
> My proposal at rewording it.
> 
> A list of all the supported EPP preferences that could be used for
> ``energy_performance_preference` on this system.
> These profiles represent different hints that are provided to the low-level
> firmware about the user's desired energy vs efficiency tradeoff.  ``default``
> represents the epp value is set by platform firmware. This attribute is read-
> only.

Make sense.
Fixed in V4 as you suggested.

> 
> 
> > +
> > +``energy_performance_preference``
> > +
> > +The current energy performance preference can be read from this
> attribute.
> > +and user can change current preference according to energy or
> > +performance needs Please get all support profiles list from
> > +``energy_performance_available_preferences`` attribute, all the
> > +profiles are integer values defined between 0 to 255 when EPP feature
> > +is enabled by platform firmware, if EPP feature is disabled, driver
> > +will ignore the written value This attribute is read-write.
> > +
> >   Other performance and frequency values can be read back from
> >   ``/sys/devices/system/cpu/cpuX/acpi_cppc/``, see :ref:`cppc_sysfs`.
> >
  

Patch

diff --git a/Documentation/admin-guide/pm/amd-pstate.rst b/Documentation/admin-guide/pm/amd-pstate.rst
index 8f3d30c5a0d8..78c6525d5a49 100644
--- a/Documentation/admin-guide/pm/amd-pstate.rst
+++ b/Documentation/admin-guide/pm/amd-pstate.rst
@@ -262,6 +262,25 @@  lowest non-linear performance in `AMD CPPC Performance Capability
 <perf_cap_>`_.)
 This attribute is read-only.
 
+``energy_performance_available_preferences``
+
+All the supported EPP preference could be selected, List of the strings that
+can be set to the ``energy_performance_preference`` attribute
+those different profiles represent different energy vs efficiency hints provided
+to low-level firmware
+however, the ``default`` represents the epp value is set by platform firmware
+This attribute is read-only.
+
+``energy_performance_preference``
+
+The current energy performance preference can be read from this attribute.
+and user can change current preference according to energy or performance needs
+Please get all support profiles list from
+``energy_performance_available_preferences`` attribute, all the profiles are
+integer values defined between 0 to 255 when EPP feature is enabled by platform
+firmware, if EPP feature is disabled, driver will ignore the written value
+This attribute is read-write.
+
 Other performance and frequency values can be read back from
 ``/sys/devices/system/cpu/cpuX/acpi_cppc/``, see :ref:`cppc_sysfs`.