How to use AMD P-State in Linux

with Kernel 6.3, we can now set amd-pstate=active via Kernel boot parameter, passive still works.

the default EPP mode is performance:

cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
performance

and the available ones can be checked with

cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_available_preferences 
default performance balance_performance balance_power power

those sysfs parameters can then be changed like every other sysfs interface (be aware that you need to change it per thread!).

but CPU has to stay in powersave governor for EPP to work:

cpupower frequency-info                                                             
analyzing CPU 2:
  driver: amd_pstate_epp
  CPUs which run at the same hardware frequency: 2
  CPUs which need to have their frequency coordinated by software: 2
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 400 MHz - 5.57 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 400 MHz and 5.57 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 4.46 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: no

Here are some benchmarks, each and everyone can set the value more towards performance or powersaving that they think fits best for their system:

Edit: I will try balance_power first and see if it has issues. So far CPU - frequencies are between 400MHz and 5.5GHz like expected.

2 Likes