[GUIDE] My power management setup

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
  • Balanced (Good balance between performance and energy consumption while also maintaining a good energy efficiency):
    • APP: balanced
    • Governor: schedutil
    • pstate mode: passive
  • Powersave (Low energy consumption and maximum energy efficiency):
    • APP: low-power
    • Governor: schedutil
    • pstate mode: guided
  • Extrem powersave (Minimal power consumption regardless of performance or energy efficiency):
    • APP: low-power
    • Governor: powersave
    • pstate mode: guided

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-gitAUR 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!

3 Likes

Marking this as a guide, thanks for sharing.