Hi All, as many others, I’ve been ecstatic to receive & setup my Ryzen Framework 13!
Currently running: Ubuntu 22.04.3 LTS
I’ve been interested in understanding the difference between
amd-pstate specifically to optimize performance on AC and longevity on battery.
For the purpose of testing after reading more about the
power-profiles-daemon, I disabled it and enabled TLP. Of note, after updating
/etc/tlp.conf directly or via
tlpui, it must be reloaded:
$ sudo systemctl reload tlp
With this in mind, I started by comparing kernels. The current default kernel on the above OS is 6.2.0-36 which along with the suggested 6.1.0-1025-oem operate power management via
acpi-cpufreq. This is hamstrung as it only offers 3 cpu freqs: 1.6, 2.2, 3.5 Ghz. One advantage it has is it will follow the min & max freq settings either provided via
tlp or directly via
/sys/devices/system/cpu/cpufreq/policy*/scaling_min_freq | scaling_max_freq (
amd-pstate does not follow these from what I’ve seen).
Meanwhile, kernel 6.5.0-1007-oem enables
amd-pstate by default. Details on either can be seen via:
$ cpupower frequency-info (this required I install the
linux-tools-common and respective kernel linux-tools pkgs, I also installed
btop while I was at it).
amd-pstate opens up the the entire freq range, which shows on my system as 400Mhz - 4.8Ghz.
Another key feature, is this allows real-time switching between pstate methods. By default:
$ cat /sys/devices/system/cpu/amd_pstate/status
When set to active, there is an option to specify energy pref either via TLP or directly:
$ echo 'power' | sudo tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
For more control, this can be changed to
guided. My testing thus far has been with the latter:
$ echo 'guided' | sudo tee /sys/devices/system/cpu/amd_pstate/status
This in turn, gives access to disabling AMD’s turbo core (this is accessible via TLP after the above status has been set):
$ echo 0 | sudo tee /sys/devices/system/cpu/cpufreq/boost
This reduces the max freq from 4.8Ghz to 3.5Ghz. From what I’ve seen, this means max draw goes from 28W to 18W.
Shout out to @topocount for the sample tlp.conf as I reviewed that as part of this testing.
Some metrics from this post:
a) started at 25% batt with an est 1 hr 40 mins @ 7.71W draw (per
powertop, quickly settled down)
b) 1 hr later, at 15% batt with est 1 hr 15 mins @ 5.82W draw
Note: apps open include 2 firefox windows with 10 total tabs, 5 terminals (1 running powertop, another
$ watch -n 2 /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
This indicates AMD power optimization still has some fine tuning to do. I’ll report back as I collect more observations.
Reading of interest:
AMD Pstate Kernel Doc
TLP Processor & other settings