mbox series

[v7,00/10] cpupower: Add AMD P-State Support

Message ID 20220222153426.2216974-1-ray.huang@amd.com
Headers show
Series cpupower: Add AMD P-State Support | expand

Message

Huang Rui Feb. 22, 2022, 3:34 p.m. UTC
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
V7: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=cpupower-amd-pstate-v7

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.

Changes from V6 -> V7:
- Fix the checkpatch warnings and errors.
- Revise the patch 9 to move the AMD P-State information prints out of
  boost function.
- Add a new option to print the performance and frequency capabilities of
  CPPC, and add related description in manpage documentation.

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

Regards to the print of "cpupower info" above, it's becasuse only
"perf-bias" option is implemented in cmd_info only for Intel processors. So
in another processors, even using the acpi-cpufreq driver, we still get the
same print. I am thinking, can we add a simple print to say this command
doesn't support AMD platform so far? Or any other idea?

Thanks,
Ray

Huang Rui (10):
  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: Add function to print AMD P-State performance capabilities
  cpupower: Add "perf" option to print AMD P-State information

 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            | 23 +++--
 tools/power/cpupower/lib/cpufreq.h            | 12 +++
 .../cpupower/man/cpupower-frequency-info.1    |  3 +
 tools/power/cpupower/utils/cpufreq-info.c     | 87 ++++++++-----------
 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     | 60 +++++++++++++
 11 files changed, 321 insertions(+), 62 deletions(-)
 create mode 100644 tools/power/cpupower/lib/acpi_cppc.c
 create mode 100644 tools/power/cpupower/lib/acpi_cppc.h