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 ). 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.
Hope this information was useful.