After benchmarking different combinations of amd_pstate, CPU governor and ACPI platform profile (APP) settings (original post here) I now also want to share my power management setup which I based on these results.
I am using the 4 scenarios mentioned in the benchmark post with the following settings:
- Performance (Best performance possible regardless of energy consumption/efficiency):
- APP:
performance
- Governor:
schedutil
- pstate mode:
guided
- APP:
- Balanced (Good balance between performance and energy consumption while also maintaining a good energy efficiency):
- APP:
balanced
- Governor:
schedutil
- pstate mode:
passive
- APP:
- Powersave (Low energy consumption and maximum energy efficiency):
- APP:
low-power
- Governor:
schedutil
- pstate mode:
guided
- APP:
- Extrem powersave (Minimal power consumption regardless of performance or energy efficiency):
- APP:
low-power
- Governor:
powersave
- pstate mode:
guided
- APP:
Per default I set the pstate mode to guided
(via the amd_pstate=guided
kernel parameter) and the governor to schedutil
(default since Linux 4.9.5) since they performed best in (almost) all scenarios. I am also mostly using the Powersave profile since it provides the best energy efficiency and the performance loss is not at all noticeable. I am also using a lot of the power saving recommendations from the ArchWiki.
To switch between the first three scenarios I use PPD with power-profiles-hooks-git
AUR to set the correct settings on a PPD profile switch and I have written a script to control the last one, see extreme-powersaver.sh. Again I had to change the extension to .stl
in order to overcome the upload file type restrictions. The hooks look like this:
$ cat /etc/power-profiles.d/performance/00-performance.sh
#!/usr/bin/env bash
# Disable extrem powersaver on profile switch
/usr/local/bin/extrem-powersaver --no-restore-app -d
echo 'guided' | tee '/sys/devices/system/cpu/amd_pstate/status'
$ cat /etc/power-profiles.d/balanced/00-balanced.sh
#!/usr/bin/env bash
# Disable extrem powersaver on profile switch
/usr/local/bin/extrem-powersaver --no-restore-app -d
echo 'passive' | tee '/sys/devices/system/cpu/amd_pstate/status'
$ cat /etc/power-profiles.d/power-saver/00-powersave.sh
#!/usr/bin/env bash
echo 'guided' | tee '/sys/devices/system/cpu/amd_pstate/status'
That’s it. Thank you for reading, I hope this was for any use or at least interest of you!