mbox series

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

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

Message

Huang Rui Feb. 16, 2022, 7:35 a.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

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

Comments

Shuah Khan Feb. 19, 2022, 12:27 a.m. UTC | #1
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
Huang Rui Feb. 20, 2022, 3:20 p.m. UTC | #2
Hi Shuah,

I am glad to see your comments again. Thanks for your time!

On Sat, Feb 19, 2022 at 08:27:41AM +0800, Shuah Khan wrote:
> 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://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Frui%2Flinux.git%2Flog%2F%3Fh%3Damd-pstate-dev-v1&data=04%7C01%7Cray.huang%40amd.com%7C7f03b74e8f3044c8574008d9f33ea54e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637808272662923642%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=L9G4msSTFHOztI8Dj5en2aC229%2Bn4xZl%2BGYMOG4R2dg%3D&reserved=0
> > V2: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Frui%2Flinux.git%2Flog%2F%3Fh%3Damd-pstate-dev-v2&data=04%7C01%7Cray.huang%40amd.com%7C7f03b74e8f3044c8574008d9f33ea54e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637808272662923642%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ApWETuX6J%2BK5fbHV7ym0%2BYawxD3TAIqaffOCRlBz56g%3D&reserved=0
> > V3: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Frui%2Flinux.git%2Flog%2F%3Fh%3Damd-pstate-dev-v3&data=04%7C01%7Cray.huang%40amd.com%7C7f03b74e8f3044c8574008d9f33ea54e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637808272662923642%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=wBn4bLwo4H8E8OIKbtIQ9Rw9AJ49ctk%2FpisN1P32Xpg%3D&reserved=0
> > V4: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Frui%2Flinux.git%2Flog%2F%3Fh%3Damd-pstate-dev-v4&data=04%7C01%7Cray.huang%40amd.com%7C7f03b74e8f3044c8574008d9f33ea54e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637808272662923642%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=XITGUWrl4J01mx0V12Unn0ZuODqhAbLuS2eNUIM7IBE%3D&reserved=0
> > V5: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Frui%2Flinux.git%2Flog%2F%3Fh%3Damd-pstate-dev-v5&data=04%7C01%7Cray.huang%40amd.com%7C7f03b74e8f3044c8574008d9f33ea54e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637808272662923642%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=D%2F2vCZrlrg3apxht1XX4GfRo1Unfc%2FMqyDX%2FRz0c%2FYU%3D&reserved=0
> > V6: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Frui%2Flinux.git%2Flog%2F%3Fh%3Dcpupower-amd-pstate&data=04%7C01%7Cray.huang%40amd.com%7C7f03b74e8f3044c8574008d9f33ea54e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637808272662923642%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=g%2FDKBuQirt3pB9dIXkTFbqjyz8LdWBFbhIZBYcRqD8o%3D&reserved=0
> > 
> 
> 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.
> 

I will use checkpatch script to scan all patches in these series.

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

Let me find a place to add some descriptions.

> 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:
> 

Let me take a look at this issue.

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

No problem, I will address the comments and send V7.

Thanks,
Ray