New AMD P-State performance scaling driver to replace ACPI CPUFreq

April 2, 2022 - Reading time: 2 minutes

Kernel 5.17 brought the new AMD P-State performance scaling driver, it is possible to force enable it for now to test before it is polished and enabled by default.

In UEFI Settings go to CPU -> Advanced -> CPPC: Enabled

In the GRUB config /etc/default/grub add the parameters

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_pstate.enable=1 amd_pstate.shared_mem=1"

//EDIT: recent changes require now

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_pstate=passive amd_pstate.shared_mem=1"

Add to the blacklist /etc/modprobe.d/my_blacklist.conf the acpi-cpufreq module

blacklist acpi-cpufreq

And rebuild images and grub config

sudo mkinitcpio -P
sudo update-grub

If everything worked, the amd-pstate driver should be used on next boot

$ sudo cpupower frequency-info
analyzing CPU 0:
  driver: amd-pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 131 us
  hardware limits: 550 MHz - 4.21 GHz
  available cpufreq governors: conservative ondemand userspace powersave performance schedutil
  current policy: frequency should be within 550 MHz and 4.21 GHz.
                  The governor "schedutil" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 1.22 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
    Boost States: 0
    Total States: 3
    Pstate-P0:  3600MHz
    Pstate-P1:  2800MHz
    Pstate-P2:  2200MHz