amd-pstate content for 6.15 (3/6/25)

A lot of code optimization to avoid cases where call paths will end up calling
 the same writes multiple times and needlessly caching variables.  To accomplish
 this some of the writes are now made into an atomically written "perf" variable.
 Locking has been overhauled to ensure it only applies to the necessary functions.
 Tracing has been adjusted to ensure trace events only are used right before
 writing out to the hardware.
 
 NOTE: This is a redo of amd-pstate-v6.15-2025-03-03 with a fixed Fixes tag.
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEECwtuSU6dXvs5GA2aLRkspiR3AnYFAmfJ8w8aHG1hcmlvLmxp
 bW9uY2llbGxvQGFtZC5jb20ACgkQLRkspiR3AnaugQ/9GvheK3/lWweGF3f4ixdl
 xS0XTj3DYQBxDvP2H35QRBHaUQQADJnJLjpl1HHy0x9Hem6m3oLZH3QpqKDLb1xX
 QWzI2JJZ9+KPZRKRwlBnzENcHtBraKX4M/+vvhTo6LSbLfSz47cdZhX6r+9siwPR
 ofWfusfBlEVPPLaul2Q+oOaQzvwy9Or2q2y3xICzo+Vo3QilSk3pekN8bd2CVd9y
 L1t1sAeN1StiOLBRbdbh8B2oyJfCCmSI85P8+sEKKR58G1q42Dv4NRl7fgzuJAfO
 4ATgX0RjNZcI9yLPmLr5PFmHJYvpHr29MAWKAo5a8VwMu1cBTv0FFkEboRvUgiXl
 3+hjQJGkyCZJTxIWhnvKl6Ci00N5apmwc1iMeoa1A1xvvTVkXLmn8RrYIJm2xMCH
 27SPJAQx+7e2cRcgjb3orz2Ymj+I9WoGy68/wdmnWM+ZxF1QaKguhM0lrIKFbu7K
 6CzVnndVgtYt9kFi/SQ4m1e8zr6RnvPWTxqQxTCVQZBNahe3b7DgnrrNrB/NBU86
 QotiTBIxQed6oqHAtL2mFRb9SdTGh9PE5xGcR94qlEGqVtu9KZIFqCDG1OgZKkR5
 9yLLai7sUGfMCLuEsdM5hXvf4fOHaGSQ0Cxx2qYWC3DDnS651fMNKh/taBo8RmS3
 r18loH2dKvBvOi2beCA5sMk=
 =VkdW
 -----END PGP SIGNATURE-----

Merge tag 'amd-pstate-v6.15-2025-03-06' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/superm1/linux

Merge amd-pstate updates for 6.15 (3/6/25) from Mario Limonciello:

"A lot of code optimization to avoid cases where call paths will end up
 calling the same writes multiple times and needlessly caching variables.
 To accomplish this some of the writes are now made into an atomically
 written "perf" variable. Locking has been overhauled to ensure it only
 applies to the necessary functions. Tracing has been adjusted to ensure
 trace events only are used right before writing out to the hardware."

NOTE: This is a redo of amd-pstate-v6.15-2025-03-03 with a fixed Fixes tag.

* tag 'amd-pstate-v6.15-2025-03-06' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/superm1/linux: (29 commits)
  cpufreq/amd-pstate: Drop actions in amd_pstate_epp_cpu_offline()
  cpufreq/amd-pstate: Stop caching EPP
  cpufreq/amd-pstate: Rework CPPC enabling
  cpufreq/amd-pstate: Drop debug statements for policy setting
  cpufreq/amd-pstate: Update cppc_req_cached for shared mem EPP writes
  cpufreq/amd-pstate: Move all EPP tracing into *_update_perf and *_set_epp functions
  cpufreq/amd-pstate: Cache CPPC request in shared mem case too
  cpufreq/amd-pstate: Replace all AMD_CPPC_* macros with masks
  cpufreq/amd-pstate-ut: Adjust variable scope
  cpufreq/amd-pstate-ut: Run on all of the correct CPUs
  cpufreq/amd-pstate-ut: Drop SUCCESS and FAIL enums
  cpufreq/amd-pstate-ut: Allow lowest nonlinear and lowest to be the same
  cpufreq/amd-pstate-ut: Use _free macro to free put policy
  cpufreq/amd-pstate: Drop `cppc_cap1_cached`
  cpufreq/amd-pstate: Overhaul locking
  cpufreq/amd-pstate: Move perf values into a union
  cpufreq/amd-pstate: Drop min and max cached frequencies
  cpufreq/amd-pstate: Show a warning when a CPU fails to setup
  cpufreq/amd-pstate: Invalidate cppc_req_cached during suspend
  cpufreq/amd-pstate: Fix the clamping of perf values
  ...
This commit is contained in:
Rafael J. Wysocki 2025-03-06 21:28:48 +01:00
commit f96d92fcbb
7 changed files with 461 additions and 565 deletions