[PATCH v4 00/11] AMD Pstate Driver Fixes and Improvements

Perry Yuan
2024-06-17T07:00:19Z

Hello everyone,

This patchset addresses critical issues and enhances performance settings for CPUs
with heterogeneous core types in the AMD pstate driver.
Specifically, it resolves problems related to calculating the highest performance
and frequency on the latest CPUs with preferred cores.
Additionally, the patchset includes documentation improvements in amd-pstate.rst,
offering a comprehensive guide covering topics such as recommended reboot requirements
during driver switching, debugging procedures for driver loading failures.

Your feedback and suggestions for improvement are highly appreciated.
Please review the patches and provide your valuable input.

Thank you.

Best regards,
Perry.

Changes from V3:
* add one new patch to enable shared memory type CPPC by default
* pick all the RB by and ACk by flags from Mario and Gautham
* update the patch #7 PPR link with doc id (Boris & Mario)
* fix the highest perf initialization issue with preferred core check
for patch #9 (Gautham)
* rework return core type and commit log for the patch #9 (Mario)
* address feedback for patch #5 for the debugging suggestions.(Mario)
* retest the patches on MSR and shared memory type CPPC systems, no regression seen.

Changes from V2:
* pick review by and ack by flags from Mario and Gautham
* rebase to latest linux-pm bleeding edge branch
* fix driver loading block issue for patch 4, make sure the warning will
not abort the driver loading in case there are some new family/model id.
* fix the driver loading sequence issue for patch 10, it allows command line
and kernel config option together. command line will override kconfig option.
* add back the AMD CPUs with Family ID 19H and Model ID range 0x70 to 0x7f to return
the highest perf and check others CPU core type in the following codes.
* run some testing on the local system.
* move the amd_core_type to amd-pstate.c because of the amd-pstate.h was removed lately.

Changes from V1:
* drop patch 11 which has been merged in a separate patch. (Mario)
* fix some typos in commit log and tile (Mario)
* fix the patch 11 regression issue of kernel command line (Oleksandr Natalenko)
* pick ack flag for patch 7 (Mario)
* drop patch 4 which is not recommended for user(Mario)
* rebase to linux-pm/bleeding-edge branch
* fix some build warning
* rework the patch 3 for CPU ID matching(Mario)
* address feedback for patch 5 (Mario)
* move the acpi pm profile after got default mode(Mario)

Perry Yuan (11):
cpufreq: amd-pstate: optimize the initial frequency values
verification
cpufreq: amd-pstate: remove unused variable nominal_freq
cpufreq: amd-pstate: show CPPC debug message if CPPC is not supported
cpufreq: amd-pstate: add debug message while CPPC is supported and
disabled by SBIOS
Documentation: PM: amd-pstate: add debugging section for driver
loading failure
Documentation: PM: amd-pstate: add guided mode to the Operation mode
cpufreq: amd-pstate: switch boot_cpu_has() to cpu_feature_enabled()
x86/cpufeatures: Add feature bits for AMD heterogeneous processor
cpufreq: amd-pstate: implement heterogeneous core topology for highest
performance initialization
cpufreq: amd-pstate: auto-load pstate driver by default
cpufreq: amd-pstate: enable shared memory type CPPC by default

Documentation/admin-guide/pm/amd-pstate.rst | 16 +-
arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/include/asm/processor.h | 2 +
arch/x86/kernel/cpu/amd.c | 19 ++
arch/x86/kernel/cpu/scattered.c | 1 +
drivers/cpufreq/amd-pstate.c | 198 ++++++++++++++------
6 files changed, 182 insertions(+), 55 deletions(-)

--
2.34.1