Massive battery life improvements on AMD over the past year

supermair@lemmy.ca to Linux@lemmy.ml – 273 points –

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:

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 :)

14

Agreed! On a Lenovo Yoga Slim 7 X, I also had a big, big boost of battery life. It's really great how far it came in comparison to a few months ago!

I have recently bought the P14s Gen 4 and except for some WiFi issues it has been pretty smooth sailing (definitely a loot better then the last notebook I had with nvidia dgpu).

I also noticed the fans spin less often and that the low power profile doesn't make the computer noticeably slower and "stutterier" to use like it used to.

I am so happy power-profiles-daemon now sets the CPU driver instead of only setting the platform_driver when it is present. It was a big pain point of mine.

Also want to appreciate the idle efficiency improvements! My AMD laptop only loses a few % of battery life after idling overnight (with the default s2idle sleep mode). A huge improvement to my older work Intel ThinkPad which loses over 25% overnight...

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 $ powerprofilesctl and seeing if CpuDriver is amd_pstate.

Thx, I will try that. When configuring my kernel I saw it and left it in the default config "active" (I was upgrading to the latest LTS kernel today). I did not check how I can interact with it as a user, yet.

Do I have to manually install PPD?

PPD comes default on most distros (I can at least confirm for Debian, Ubuntu and Fedora on the GNOME variant). I am not sure about KDE variants but they should support it too even if it's not pre-installed.

You can check if it's running with the following command:

$ powerprofilesctl

However as the 0.20 release which supports p-state just released recently most fixed point release distros won't have the newer version. In this case you would need to update it manually.

I am running Debian testing and it has the new version while stable does not.

https://packages.debian.org/trixie/power-profiles-daemon