AMD has been on a roll over the past year making significant strides in power management across the Linux stack.
Most of this work is centered around support for p-state.
To take advantage you should run a newer Linux kernel. Here are some of the improvements from each recent release:
Use power-profiles-daemon 0.20+ which sets the appropriate p-state driver based on the selected battery profile.
Upcoming changes:
- More kernel improvements
- Firmware and kernel module updates (distro dependendent; e.g. Debian)
Kudos to AMD principal engineer Mario Limonciello for driving these changes across the board!
This is one advantage of increased competition (e.g. from the Apple M series); the entire ecosystem is pushed forward.
I am personally benefiting immensely from these improvements on my new Thinkpad t14s with AMD 7840U (battery life going from 4-5 hours to easily 10+ hours).
Finally we don’t have to settle anymore for underwhelming battery life on Linux laptops :)
Would a desktop CPU (Zen3) also benefit from these improvements?
Yes, Zen 2 and above support p-states! You might need to update your bios and enable CPPC if p-state is not showing up.
You can confirm by running
$ sudo powerprofilesctl
and seeing if CpuDriver is amd_pstate.