Re: [PATCH v12 0/8] AMD Pstate Fixes And Enhancements

From: Rafael J. Wysocki
Date: Mon Apr 29 2024 - 13:06:46 EST


On Mon, Apr 29, 2024 at 4:56 AM Yuan, Perry <Perry.Yuan@xxxxxxx> wrote:
>
> [AMD Official Use Only - General]
>
> Hi Rafael,
>
>
> > -----Original Message-----
> > From: Rafael J. Wysocki <rafael@xxxxxxxxxx>
> > Sent: Saturday, April 27, 2024 1:38 AM
> > To: Yuan, Perry <Perry.Yuan@xxxxxxx>
> > Cc: rafael.j.wysocki@xxxxxxxxx; Limonciello, Mario
> > <Mario.Limonciello@xxxxxxx>; viresh.kumar@xxxxxxxxxx; Shenoy, Gautham
> > Ranjal <gautham.shenoy@xxxxxxx>; Petkov, Borislav
> > <Borislav.Petkov@xxxxxxx>; Huang, Ray <Ray.Huang@xxxxxxx>; Deucher,
> > Alexander <Alexander.Deucher@xxxxxxx>; Huang, Shimmer
> > <Shimmer.Huang@xxxxxxx>; oleksandr@xxxxxxxxxxxxxx; Du, Xiaojian
> > <Xiaojian.Du@xxxxxxx>; Meng, Li (Jassmine) <Li.Meng@xxxxxxx>; linux-
> > pm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH v12 0/8] AMD Pstate Fixes And Enhancements
> >
> > On Thu, Apr 25, 2024 at 10:08 AM Perry Yuan <perry.yuan@xxxxxxx>
> > wrote:
> > >
> > > The patch series adds some fixes and enhancements to the AMD pstate
> > > driver.
> > >
> > > It enables CPPC v2 for certain processors in the family 17H, as
> > > requested by TR40 processor users who expect improved performance and
> > > lower system temperature.
> > >
> > > changes latency and delay values to be read from platform firmware
> > > firstly for more accurate timing.
> > >
> > > A new quirk is introduced for supporting amd-pstate on legacy
> > > processors which either lack CPPC capability, or only only have CPPC
> > > v2 capability
> > >
> > > Testing done with one APU system while cpb boost on:
> > >
> > > amd_pstate_lowest_nonlinear_freq:1701000
> > > amd_pstate_max_freq:3501000
> > > cpuinfo_max_freq:3501000
> > > cpuinfo_min_freq:400000
> > > scaling_cur_freq:3084836
> > > scaling_max_freq:3501000
> > > scaling_min_freq:400000
> > >
> > > analyzing CPU 6:
> > > driver: amd-pstate-epp
> > > CPUs which run at the same hardware frequency: 6
> > > CPUs which need to have their frequency coordinated by software: 6
> > > maximum transition latency: Cannot determine or is not supported.
> > > hardware limits: 400 MHz - 3.50 GHz
> > > available cpufreq governors: performance powersave
> > > current policy: frequency should be within 400 MHz and 3.50 GHz.
> > > The governor "powersave" may decide which speed to use
> > > within this range.
> > > current CPU frequency: Unable to call hardware
> > > current CPU frequency: 3.50 GHz (asserted by call to kernel)
> > > boost state support:
> > > Supported: yes
> > > Active: yes
> > > AMD PSTATE Highest Performance: 255. Maximum Frequency: 3.50 GHz.
> > > AMD PSTATE Nominal Performance: 204. Nominal Frequency: 2.80 GHz.
> > > AMD PSTATE Lowest Non-linear Performance: 124. Lowest Non-linear
> > Frequency: 1.70 GHz.
> > > AMD PSTATE Lowest Performance: 30. Lowest Frequency: 400 MHz.
> > >
> > >
> > > I would greatly appreciate any feedbacks.
> > > Thank you!
> > > Perry.
> > >
> > > Changes from v11:
> > > * minmor change for patch 1 "perf" change to "performance"(Huang ray)
> > > * rebased to lastest linux-pm/bleeding-edge branch
> > >
> > > Changes from v10:
> > > * pick ack-by flags from huang ray for all patches.
> > > * run testing on AMD Ryzen 5 7640U without regression issue.
> > >
> > > Changes from v9:
> > > * pick review by flag from Meng Li
> > > * pick test by flag from Ugwekar Dhananjay
> > > * picl review by flag from Gautham R. Shenoy
> > >
> > > Changes from v8:
> > > * add commit log for patch 1 and patch 2 (Rafael)
> > > * add missing Perry signed-off-by for new patches #1,#2,#4 (Rafael)
> > > * rebased to latest linux-pm/bleeding-edge
> > >
> > > Changes from v7:
> > > * Gautham helped to invole some new improved patches into the patchset.
> > > * Adds comments for cpudata->{min,max}_limit_{perf,freq}, variables [New
> > Patch].
> > > * Clarifies that the units for cpudata->*_freq is in khz via comments [New
> > Patch].
> > > * Implements the unified computation of all cpudata->*_freq
> > > * v7 Patch 2/6 was dropped which is not needed any more
> > > * moved the quirk check to the amd_pstate_get_freq() function
> > > * pick up RB flags from Gautham
> > > * After the cleanup in patch 3, we don't need the helpers
> > > amd_get_{min,max,nominal,lowest_nonlinear}_freq(). This
> > > patch removes it [New Patch].
> > > * testing done on APU system as well, no regression found.
> > >
> > > Changes from v6:
> > > * add one new patch to initialize capabilities in
> > > amd_pstate_init_perf which can avoid duplicate cppc capabilities read
> > > the change has been tested on APU system.
> > > * pick up RB flags from Gautham
> > > * drop the patch 1/6 which has been merged by Rafael
> > >
> > > Changes from v5:
> > > * rebased to linux-pm v6.8
> > > * pick up RB flag from for patch 6(Mario)
> > >
> > > Changes from v4:
> > > * improve the dmi matching rule with zen2 flag only
> > >
> > > Changes from v3:
> > > * change quirk matching broken BIOS with family/model ID and Zen2
> > > flag to fix the CPPC definition issue
> > > * fix typo in quirk
> > >
> > > Changes from v2:
> > > * change quirk matching to BIOS version and release (Mario)
> > > * pick up RB flag from Mario
> > >
> > > Changes from v1:
> > > * pick up the RB flags from Mario
> > > * address review comment of patch #6 for amd_get_nominal_freq()
> > > * rebased the series to linux-pm/bleeding-edge v6.8.0-rc2
> > > * update debug log for patch #5 as Mario suggested.
> > > * fix some typos and format problems
> > > * tested on 7950X platform
> > >
> > >
> > > V1:
> > > https://lore.kernel.org/lkml/63c2b3d7-083a-4daa-ba40-
> > 629b3223a92d@mail
> > > box.org/
> > > V2:
> > > https://lore.kernel.org/all/cover.1706863981.git.perry.yuan@xxxxxxx/
> > > v3:
> > > https://lore.kernel.org/lkml/cover.1707016927.git.perry.yuan@xxxxxxx/
> > > v4:
> > > https://lore.kernel.org/lkml/cover.1707193566.git.perry.yuan@xxxxxxx/
> > > v5:
> > > https://lore.kernel.org/lkml/cover.1707273526.git.perry.yuan@xxxxxxx/
> > > v6:
> > > https://lore.kernel.org/lkml/cover.1707363758.git.perry.yuan@xxxxxxx/
> > > v7:
> > > https://lore.kernel.org/lkml/cover.1710323410.git.perry.yuan@xxxxxxx/
> > > v8:
> > > https://lore.kernel.org/lkml/cover.1710754409.git.perry.yuan@xxxxxxx/
> > > v9:
> > > https://lore.kernel.org/lkml/cover.1710836407.git.perry.yuan@xxxxxxx/
> > > v10:
> > > https://lore.kernel.org/lkml/cover.1711335714.git.perry.yuan@xxxxxxx/
> > > v11:
> > > https://lore.kernel.org/lkml/cover.1713858800.git.perry.yuan@xxxxxxx/
> > >
> > >
> > > Gautham R. Shenoy (3):
> > > cpufreq: amd-pstate: Document *_limit_* fields in struct amd_cpudata
> > > cpufreq: amd-pstate: Document the units for freq variables in
> > > amd_cpudata
> > > cpufreq: amd-pstate: Remove
> > > amd_get_{min,max,nominal,lowest_nonlinear}_freq()
> > >
> > > Perry Yuan (5):
> > > cpufreq: amd-pstate: Unify computation of
> > > {max,min,nominal,lowest_nonlinear}_freq
> > > cpufreq: amd-pstate: Bail out if min/max/nominal_freq is 0
> > > cpufreq: amd-pstate: get transition delay and latency value from ACPI
> > > tables
> > > cppc_acpi: print error message if CPPC is unsupported
> > > cpufreq: amd-pstate: Add quirk for the pstate CPPC capabilities
> > > missing
> > >
> > > drivers/acpi/cppc_acpi.c | 4 +-
> > > drivers/cpufreq/amd-pstate.c | 257 +++++++++++++++++++++--------------
> > > include/linux/amd-pstate.h | 20 ++-
> > > 3 files changed, 174 insertions(+), 107 deletions(-)
> > >
> > > --
> >
> > Whole series applied as 6.10 material, thanks!
>
> Thank you so much for merging the changes!

No problem.

However, there are compiler warnings in the new material that need to
be addressed before it goes into linux-next.

I've seen your patch addressing some of them, but there is still an
unused local variable to deal with.