[amd_pstate_epp] AMD Power Management - Drivers & Power Profiles

This post is as a guide, with which I ended up setting my Tumbleweed on my latest HP EliteBook 835 G10 7840U/32GB/5G with 2TB Samsung 990 Pro, running latest kernel 6.7.4. as of today.

My setup:

xx@xx:~> cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
amd-pstate-epp

xx@xx # cat /sys/devices/system/cpu/amd_pstate/status
active

xx@xx:~> cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave

Along with it I have power-profiles-daemon running (no tlp, laptop-modes, pwertop, etc):

xx@xx:~> systemctl status power-profiles-daemon.service
● power-profiles-daemon.service - Power Profiles daemon
     Loaded: loaded (/usr/lib/systemd/system/power-profiles-daemon.service; enabled; preset: disabled)
     Active: active (running) since Mon 2024-01-01 05:38:15 MSK; 7h ago
   Main PID: 1154 (power-profiles-)
      Tasks: 4 (limit: 4915)
        CPU: 104ms
     CGroup: /system.slice/power-profiles-daemon.service
             └─1154 /usr/libexec/power-profiles-daemon

I have following setup, simply using KDE Power Management (widget & in settings):
AC = Performance
BAT = Balanced

Then I found a cool utility called “auto-epp” which manages the energy performance preferences (EPP) of your AMD CPU using the AMD-Pstate driver.
Link: auto-epp/README.md at master · day0xy/auto-epp · GitHub

Simply downloaded and manually installed and changed the default behaviour from (/etc/auto-epp.conf:
epp_state_for_AC=balance_performance
epp_state_for_BAT=power

to
epp_state_for_AC=balance_performance
epp_state_for_BAT=power

vg@VG-835G10Nix:~/auto-epp> systemctl status auto-epp
● auto-epp.service - auto-epp - Automatic amd-pstate epp
     Loaded: loaded (/etc/systemd/system/auto-epp.service; enabled; preset: disabled)
     Active: active (running) since Sun 2024-02-11 11:29:50 MSK; 38min ago
   Main PID: 18291 (auto-epp)
      Tasks: 1 (limit: 4915)
        CPU: 2.679s
     CGroup: /system.slice/auto-epp.service
             └─18291 /bin/python3 /usr/bin/auto-epp

In default BAT=power I was getting max 1.4Ghz on cores, way too low (then better get Celeron :slight_smile: ). Now it works as it should be, close to full performance mode when needed. The next best is “balance_power” - to max when needed, perhaps best option between performance/power when need max from battery.

This is good setup, which gives about 1-1.5 hours extra on battery. Of course the “balance_power” and “power” will give even more, but then better get Celeron for battery use. :slight_smile:

Hope this information was useful.

Also wanted to mention that with above settings, on battery, notebook is close to 95% performance when on on AC (full performance) and runs about 5C cooler (49C-51C to about 46C-449C) which is also awesome result. With “balance_power” it runs about 8-10C cooler additionally.

Correction:

epp_state_for_AC=balance_performance
epp_state_for_BAT=power

to
epp_state_for_AC=performance
epp_state_for_BAT=balance_performance

Also I may add that with “balance_performance” my CPU temps went down about 3C-5C, from ~49C-51C to ~46C-49C, and with “balance_power” it goes down by ~8C, i.e. when simply scrolling websites and editing.