[TRACKING] PPD v TLP for AMD Ryzen 7040

Hm, for me enabling the EPP driver, either manually or using the PPD patches seems to sometimes cause AMD CPU stuck in low-speed state after system resume. I can temporarily get out of that state by toggling the power profile and it also seems to randomly unstick itself, but I do think something isn’t quite right with EPP and as such those patches might cause performance regressions for some users? Anyone else experienced their CPU getting stuck at 544Mhz with those patches after suspend sometimes?

EDIT: Seems to be [Bug 218305] New: Ryzen 7 7840HS gets stuck at 544MHz frequency after a random number of suspend/resume cycles

4 Likes

I can confirm this behavior.

1 Like

Can you please reproduce it while using scripts/amd_s2idle.py · master · drm / amd · GitLab? I would like to see more about what is captured while you reproduce it.

Sure. What exactly should I do with the results?

Any time you would suspend the system do so using the script instead of lid or software.

It will capture a bunch about before the suspend and after into a text file.

2 Likes

Will do. When it’s next slow, what’s the best way to get you the results? Also, I see it runs suspend cycles and then awakens. Can I tell the script to suspend and not immediately wake up?

Hey! A quick update from me: I switched to Fedora 39 with PPD installed from Mario’s COPR. My minimum brightness idle power is now 3.5W and max brightness is 6W. So much better!

I’m not sure what Fedora is doing differently to Debian, maybe it’s something in the kernel to do with the EC communication. I was not able to achieve these results on Debian with PPD or TLP.

4 Likes

Yeah one of the arguments it prompts you is for how long to suspend. Just program it longer than you need it.

Don’t know exactly what happened but going from kernel 6.5.11 to kernel 6.6.11 made my power usage go from 4W to 7.5W idle as if I didn’t install Mario’s COPR. I did try a reinstall of Mario’s COPR but it didn’t do anything. Anyone got a clue what I could check to see what might be goofy? New to fedora.

Leaving this up for others who jump the gun. Make sure you check that you didn’t inadvertently turn off power saver in the settings when testing and forgot to turn it back on lol. Sorry squad

What’s the current recommendation then? There was a lot done, some patches made it to the kernel, is TLP still not recommended with kernel 6.7+ ?

Are there still “major issues” such as the suspend keyboard wake? I’m using TLP currently on Arch with kernel 6.7.3. My usage on fairly high brightness with firefox (as I type this) and a few chat apps (element, 64base-telegram) + oss-code (vscode/electron) is around 5-6W.

Video playback on firefox even with forcing hw accelleration still seems to kill it quickly tho it goes up to 25W+

1 Like

It also gets complicated with F40 dropping PPD as the default.

1 Like

…or rather F41:

I’ll revise the change proposal and target F41.

1 Like

What are they planning to replace PPD with? I’ve stopped using TLP on my current notebook as PPD gives me a more polished system for less effort.

https://tuned-project.org/

2 Likes

Shout-out to @Mario_Limonciello ! With the PPD from his COPR (mariolimonciello/power-profiles-daemon Copr) I get < 3W idle with the following setup:

  • Lowest display brightness
  • Keyboard backlight off
  • Power saver
  • Bluetooth off
  • Wifi on
  • 125% display scaling
  • 2x USB-A, 1x USB-C, 1x HDMI expansion card
  • WD Black SN770 1TB
  • 2x Kingston ValueRAM KVR56S46BS6-8

This is on a pretty much stock Fedora 39 with the following changes:

12 Likes

EDITED AFTER RE-TESTING
I seem to get similar results with TLP and PPD (the patched one) on Arch 6.7

Idle with PPD and power-saver gives me around ~3.7W on lowest brigthness simillar to TLP with a bunch of apps + firefox up (but idle).

My setup is set to use suspend for 5 minutes followed by hibernation which both makes it safer (full disk encryption) and saves me the suspend-drains-battery problem. I’m pretty sure there are still issues tho. Also my measurements were mostly short term.

Could you point me to the right direction to do this on my 13" (amd) please ?

I just followed this guide for hibernation in general and then from this guide you’ll want to change HandleLidSwitch (and others) in the /etc/systemd/logind.conf to suspend-then-hibernate. Make sure to also change your HibernateDelaySec value to something too unless you want to hibernate only on <5% battery.

This all also requires the fixes to “autowakup” with the AMD framework, namely rtc_cmos.use_acpi_alarm=1 on the cmdline, otherwise your laptop might just wake up in the middle and eat the battery. (this should get fixed by kernel 6.9 I believe)

3 Likes

Thanks @Almindor :pray:
I really appreciate !

Good news folks; PPD 0.20 is released today.

I’ve updated the packages on my Ubuntu PPA and Fedora Copr.

Here are the bugs tracking the update for Ubuntu 24.04 and Fedora.

19 Likes