[PATCH RESEND v6 0/9] cpupower: Add AMD P-State Support

Huang Rui posted 9 patches 4 years, 4 months ago
There is a newer version of this series
tools/power/cpupower/Makefile                |  6 +-
tools/power/cpupower/lib/acpi_cppc.c         | 59 +++++++++++++++
tools/power/cpupower/lib/acpi_cppc.h         | 21 ++++++
tools/power/cpupower/lib/cpufreq.c           | 21 ++++--
tools/power/cpupower/lib/cpufreq.h           | 12 +++
tools/power/cpupower/utils/cpufreq-info.c    | 68 +++++------------
tools/power/cpupower/utils/helpers/amd.c     | 77 ++++++++++++++++++++
tools/power/cpupower/utils/helpers/cpuid.c   | 13 ++++
tools/power/cpupower/utils/helpers/helpers.h | 22 ++++++
tools/power/cpupower/utils/helpers/misc.c    | 62 ++++++++++++++++
10 files changed, 301 insertions(+), 60 deletions(-)
create mode 100644 tools/power/cpupower/lib/acpi_cppc.c
create mode 100644 tools/power/cpupower/lib/acpi_cppc.h
[PATCH RESEND v6 0/9] cpupower: Add AMD P-State Support
Posted by Huang Rui 4 years, 4 months ago
Hi Shuah,

Since AMD P-State kernel is merged into 5.17-rc1, I would like to continue
revising the AMD P-State support for the CPUPower tool. These series are
rebased on latest bleeding-edge, any comments are warm for me.

See patch series of CPUPower in below git repo:
V1: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v1
V2: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v2
V3: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v3
V4: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v4
V5: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v5
V6: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=cpupower-amd-pstate

Changes from V1 -> V2:
- Refine the commit log for cpupower patches.
- Expose a function to get the sysfs value from specific table.
- Move AMD P-State sysfs definitions and functions into AMD helper file.
- Move the boost init function into AMD helper file and explain the
details in the commit log.
- Remove the amd_pstate_get_data in the lib/cpufreq.c to keep the lib as
common operations.
- Move print_speed function into misc helper file.
- Add amd_pstate_show_perf_and_freq() function in AMD helper for
  cpufreq-info print.

Changes from V2 -> V3:
- Revise the cpupower_amd_pstate_enabled() function to use
cpufreq_get_driver helper instead of read sysfs.
- Clean up the AMD P-State max/min frequency APIs, because they are
actually the same with cpufreq info sysfs.

Changes from V3 -> V4:
- Introduce ACPI CPPC library support.
- Clean up the duplicated AMD specific perf/frequency.

Changes from V4 -> V5:
- Fix the table check condition at cpufreq_get_sysfs_value_from_table.

Changes from V5 -> V6:
- Revise the minor commit and subject descriptions.

Thanks,
Ray

Huang Rui (9):
  cpupower: Add AMD P-State capability flag
  cpupower: Add the function to check AMD P-State enabled
  cpupower: Initial AMD P-State capability
  cpupower: Add the function to get the sysfs value from specific table
  cpupower: Introduce ACPI CPPC library
  cpupower: Add AMD P-State sysfs definition and access helper
  cpupower: Enable boost state support for AMD P-State module
  cpupower: Move print_speed function into misc helper
  cpupower: Print AMD P-State information on cpupower

 tools/power/cpupower/Makefile                |  6 +-
 tools/power/cpupower/lib/acpi_cppc.c         | 59 +++++++++++++++
 tools/power/cpupower/lib/acpi_cppc.h         | 21 ++++++
 tools/power/cpupower/lib/cpufreq.c           | 21 ++++--
 tools/power/cpupower/lib/cpufreq.h           | 12 +++
 tools/power/cpupower/utils/cpufreq-info.c    | 68 +++++------------
 tools/power/cpupower/utils/helpers/amd.c     | 77 ++++++++++++++++++++
 tools/power/cpupower/utils/helpers/cpuid.c   | 13 ++++
 tools/power/cpupower/utils/helpers/helpers.h | 22 ++++++
 tools/power/cpupower/utils/helpers/misc.c    | 62 ++++++++++++++++
 10 files changed, 301 insertions(+), 60 deletions(-)
 create mode 100644 tools/power/cpupower/lib/acpi_cppc.c
 create mode 100644 tools/power/cpupower/lib/acpi_cppc.h

-- 
2.25.1

Re: [PATCH RESEND v6 0/9] cpupower: Add AMD P-State Support
Posted by Shuah Khan 4 years, 4 months ago
On 2/16/22 12:35 AM, Huang Rui wrote:
> Hi Shuah,
> 
> Since AMD P-State kernel is merged into 5.17-rc1, I would like to continue
> revising the AMD P-State support for the CPUPower tool. These series are
> rebased on latest bleeding-edge, any comments are warm for me.
> 
> See patch series of CPUPower in below git repo:
> V1: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v1
> V2: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v2
> V3: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v3
> V4: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v4
> V5: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=amd-pstate-dev-v5
> V6: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=cpupower-amd-pstate
> 

A few checkpatch warns to fix. I usually ignore CHECK from checkpatch,
but a few of them found on this series could improve the code.

Also is there a need to add/update manpages and documentation.

I tested these my AMD Ryzen 7 4700G system. I didn't play with set commands
and just the info ones.

cpupower info gave me this output. The first message is fine, but the
second one is a bit odd. Should it just bail out right after the first
message about "not support"

cpupower info

System does not support Intel's performance bias setting
analyzing CPU 0:

Go ahead send me v7 for these and add any mapages/doc if necessary.
I will get them into Linux 5.18-rc1

thanks,
-- Shuah