# \[Guide\] FW13 Ryzen Power Management

**URL:** <https://community.frame.work/t/guide-fw13-ryzen-power-management/42988>\
**Category:** Linux\
**Tags:** other-distro\
**Created:** [January 3, 2024, 11:26pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988 "2024-01-03T23:26:22Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![linuxlion](https://avatars.discourse-cdn.com/v4/letter/l/958977/32.png) [@linuxlion](https://community.frame.work/u/linuxlion)\
**Post date:** [January 3, 2024, 11:26pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/1 "2024-01-03T23:26:22Z")

</div>

Hi All,

After about 2 months of active testing, this is a compendium based on my results and the insights of others here. Thanks everybody!

**Recommended Steps**  
a) [run PPD as advised by FW](https://knowledgebase.frame.work/en_us/optimizing-ubuntu-battery-life-Sye_48Lg3) and set it as needed  
b) Install & run a 6.5 or newer kernel, alternately enable amd\_pstate via a kernel cmd  
c) ~~[Install the fix](http://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/118) from @Mario_Limonciello to reconnect PPD and amd-pstate (or courtesy of @efindus [for the AUR](https://aur.archlinux.org/packages/power-profiles-daemon-patched-amd-git))~~ No longer needed as of PPD 0.20.  
d) Turn off the FW13’s physical switches for the camera & mic unless in use  
e) ~~[Enable autosuspend](https://github.com/systemd/systemd/pull/30131/files) of HDMI & DPI expansion cards if those are present~~ No longer needed as updated in udev (currently seeing v240.11-0ubuntu3.12 on Ubuntu 22.04.4)  
f) As desired, [set abm level](http://community.frame.work/t/adaptive-backlight-management-abm/41055) to decrease display power draw

**Optional**  
Fedora already defaults to pipewire, for distributions that don’t, it may be worthwhile to migrate to it.

**Likely Results**  
My observations were a reduction in avg draw on battery of 7W+ to \< 5W for my std daily workloads. On my FW13 7640u with the 55W battery, this equates to an increase in runtime from ~8 hrs to over 11 hrs.

**Caveats**

- [As noted elsewhere](https://gitlab.freedesktop.org/mesa/mesa/-/issues/10223), video playback has a higher draw than it should. My testing showed [less draw with hardware acceleration](http://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/101). Others report higher draw with HW accel. As driver & firmware optimisations continue, we should all expect this to reach parity with other OSes.
- The Phoenix/Ryzen 4 architecture still has upstream optimisations in process or trickling down to the latest kernel builds. Which again leaves the opportunity for longer runtimes as this become part of distributions’ standard kernels.
- The MediaTek mt7921 wifi driver also awaits optimisation as large downloads can draw impressively high power.

**Not Needed**

- Initially, using powertop to calibrate and auto-tune seemed advisable. However after testing the above settings with and without auto-tune, there seems to be little advantage.
- Likewise, my initial testing showed TLP reduced draw more than PPD. However, with the combination of settings above, this difference dissipated. YMMV.

**Testing & Results**  
[Methods and initial results.](http://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/32)  
[Comparative results and summary.](http://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/62)  
[Ambient Backlight Management Results.](http://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/152)  
[Continued Observations Pointing Back to PPD.](http://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/79)  
[Additional Details about USB Autosuspend.](http://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/43)

**Follow-up**  
As the Ryzen powered FW13 is my daily driver, I’ll update this wiki with new insights.

---

<div class="post-metadata">

**Author:** ![inverse](https://avatars.discourse-cdn.com/v4/letter/i/c6cbf5/32.png) [@inverse](https://community.frame.work/u/inverse)\
**Post date:** [January 3, 2024, 11:37pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/2 "2024-01-03T23:37:56Z")

</div>

This is an awesome resource, thank you for putting it together!

---

<div class="post-metadata">

**Author:** ![Clement\_Marche](https://avatars.discourse-cdn.com/v4/letter/c/d26b3c/32.png) [@Clement\_Marche](https://community.frame.work/u/Clement_Marche)\
**Post date:** [January 4, 2024, 1:46pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/3 "2024-01-04T13:46:23Z")

</div>

Thank you for the guide !

I have a question regarding bluetooth : when bluetooth is up but not connected, according to powertop it takes arroung 3Wh and awake 100% of the time. Did you investigate this part ?

---

<div class="post-metadata">

**Author:** ![linuxlion](https://avatars.discourse-cdn.com/v4/letter/l/958977/32.png) [@linuxlion](https://community.frame.work/u/linuxlion)\
**Post date:** [January 5, 2024, 4:54am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/4 "2024-01-05T04:54:46Z")

</div>

Hi @inverse, glad to be of service!

---

<div class="post-metadata">

**Author:** ![linuxlion](https://avatars.discourse-cdn.com/v4/letter/l/958977/32.png) [@linuxlion](https://community.frame.work/u/linuxlion)\
**Post date:** [January 5, 2024, 5:04am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/5 "2024-01-05T05:04:00Z")

</div>

> [@Clement\_Marche](#):
>
> when bluetooth is up but not connected, according to powertop it takes arroung 3Wh and awake 100% of the time.

Yes, my default is to turn off bluetooth when not in use. I take powertop’s readings with a grain of salt. To understand what something is really using, I’ll typically enable it for awhile (my test target has been 10% battery usage to smooth out fluctuations) then disable it for the same period. Then calculate and compare avg power draw. I’ve found the delta to be more accurate than the W usage reported in powertop.

If your use case includes keeping bluetooth enabled, you may wish [to set the IdleTimeout](https://devicetests.com/disable-bluetooth-power-saving-ubuntu) to lower energy consumption when not in use.

Hope this helps!

---

<div class="post-metadata">

**Author:** ![Adrian\_Joachim](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/adrian_joachim/32/9949_2.png) [@Adrian\_Joachim](https://community.frame.work/u/Adrian_Joachim)\
**Post date:** [January 5, 2024, 7:30am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/6 "2024-01-05T07:30:07Z")

</div>

> [@linuxlion](#):
>
> [As noted elsewhere](https://gitlab.freedesktop.org/mesa/mesa/-/issues/10223), video playback has a higher draw than it should. My testing showed [less draw with hardware acceleration](http://community.frame.work/t/tracking-ppd-v-tlp-for-amd-ryzen-7040/39423/101). Others report higher draw with HW accel. As driver & firmware optimisations continue, we should all expect this to reach parity with other OSes.

Hardware acceleration does help with higher resolutions and I do recommend keeping it on as software decoding only outperforms it below 1080p and even there not by much. The problem is just that the hardware decoder at this point uses way more power than it should (or does on windows) so video playback still makes quite a big difference.

I do hope this gets fixed soon.

---

<div class="post-metadata">

**Author:** ![Aurelein\_Brabant](https://avatars.discourse-cdn.com/v4/letter/a/b5a626/32.png) [@Aurelein\_Brabant](https://community.frame.work/u/Aurelein_Brabant)\
**Post date:** [January 6, 2024, 4:54pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/7 "2024-01-06T16:54:24Z")

</div>

Something else to consider, although its benefits are not vastly agreed upon, is disabling individual CPU cores if you don’t need them for your workflow.

I didn’t take proper measurements so far, but it really seems to have a positive impact on battery life at least on my system.

This can be done by echo-ing to a file for each CPU:

```auto
echo '0' | tee /sys/devices/system/cpu/cpuX/online

```

Where `X` is the number of the CPU core (starts at 1).

As doing that for each of them is cumbersome I made [a CLI tool](https://github.com/aurelien-brabant/proctl) that helps with scaling to a given number of cores, if anyone is interested.

---

<div class="post-metadata">

**Author:** ![Mario\_Limonciello](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/mario_limonciello/32/19277_2.png) [@Mario\_Limonciello](https://community.frame.work/u/Mario_Limonciello)\
**Post date:** [January 6, 2024, 5:22pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/8 "2024-01-06T17:22:31Z")

</div>

It really depends on the workload if this will have a good battery impact for the system or not. The APU **generally** performs most _efficiently_ with all cores active. This is because of common IP for all cores that need to be lit up for any cores to be active.

For example if you have a multi-threaded task that nominally takes 30s when equally split across 4 cores and you take 2 cores offline that same will logically take ~45s.  
Your outcome will be:

1. The task taking 50% longer.
2. The common blocks being active longer.
3. The individual cores being inactive longer.

My hypothesis is that running a multi threaded workload you’ll not be any better off but if you’re running single threaded workloads across a bunch of cores you will be.

I think to really prove this out what you’ll want to do is come up with a few repeatable workloads that are representative that you can script and benchmark.

Also; if you haven’t already applied it you should consider applying the amd-pstate preferred core patch series. This will make sure that the scheduler is biased to the most efficient cores.

---

<div class="post-metadata">

**Author:** ![Aurelein\_Brabant](https://avatars.discourse-cdn.com/v4/letter/a/b5a626/32.png) [@Aurelein\_Brabant](https://community.frame.work/u/Aurelein_Brabant)\
**Post date:** [January 6, 2024, 5:38pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/9 "2024-01-06T17:38:41Z")

</div>

Really instructing thank you, indeed as I said that would need more thorough testing to really see if that makes a difference or not.

I’m not sure what patch you are referring to or how to apply it, I’m on kernel 6.6.10 if that’s relevant.

---

<div class="post-metadata">

**Author:** ![Mario\_Limonciello](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/mario_limonciello/32/19277_2.png) [@Mario\_Limonciello](https://community.frame.work/u/Mario_Limonciello)\
**Post date:** [January 6, 2024, 6:44pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/10 "2024-01-06T18:44:46Z")

</div>

It’s not part of that kernel yet. This is the series.

[https://lore.kernel.org/linux-acpi/20231205063537.872834-6-li.meng@amd.com/T/](https://lore.kernel.org/linux-acpi/20231205063537.872834-6-li.meng@amd.com/T/)

You would need to manually apply until it’s landed upstream.

---

<div class="post-metadata">

**Author:** ![Aurelein\_Brabant](https://avatars.discourse-cdn.com/v4/letter/a/b5a626/32.png) [@Aurelein\_Brabant](https://community.frame.work/u/Aurelein_Brabant)\
**Post date:** [January 6, 2024, 8:59pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/11 "2024-01-06T20:59:54Z")

</div>

Oh I see, I’ll give it a try, thank you again!

Edit: Applied the patch, will start running in laptop mode with all the cores enabled, thx 🙂

---

<div class="post-metadata">

**Author:** ![Kelvie](https://avatars.discourse-cdn.com/v4/letter/k/3be4f8/32.png) [@Kelvie](https://community.frame.work/u/Kelvie)\
**Post date:** [January 10, 2024, 9:35am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/12 "2024-01-10T09:35:42Z")

</div>

Have you tested PCI autosuspend (which is one of the things TLP and powertop’s auto tune does by default), to see how much it saves by leaving that on?

---

<div class="post-metadata">

**Author:** ![Kelvie](https://avatars.discourse-cdn.com/v4/letter/k/3be4f8/32.png) [@Kelvie](https://community.frame.work/u/Kelvie)\
**Post date:** [January 11, 2024, 1:46am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/13 "2024-01-11T01:46:41Z")

</div>

I have a PKGBUILD with this series here (as well as the ectool patch for the AMD, and one that enables hibernate while in lockdown mode).

[https://aur.archlinux.org/packages/linux-kelvie-fw-git](https://aur.archlinux.org/packages/linux-kelvie-fw-git)

Others can use modify this as they need to as well.

I don’t notice any difference in power usage, though, but with the nature of that patch, it’ll really depend on the silicon lottery.

---

<div class="post-metadata">

**Author:** ![Seth\_Merkley](https://avatars.discourse-cdn.com/v4/letter/s/c89c15/32.png) [@Seth\_Merkley](https://community.frame.work/u/Seth_Merkley)\
**Post date:** [January 11, 2024, 10:52am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/14 "2024-01-11T10:52:49Z")

</div>

In the first step it simply says

> you will absolutely want to use power-profiles-daemon for the absolute best experience

but says nothing on how to do this?

---

<div class="post-metadata">

**Author:** ![Ravi\_Jain](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/ravi_jain/32/2479_2.png) [@Ravi\_Jain](https://community.frame.work/u/Ravi_Jain)\
**Post date:** [January 11, 2024, 11:13am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/15 "2024-01-11T11:13:20Z")

</div>

This will depend on what distro you are using. Some distro’s will have it installed as standard, others you will be able to download it via that distro’s package manager.

Best guidance for this is to Google how to install PPD for your revelant distro and also check that if you are using PPD, that you uninstall TLP and/or any other power management tools.

---

<div class="post-metadata">

**Author:** ![Matthew\_Shapiro](https://avatars.discourse-cdn.com/v4/letter/m/c37758/32.png) [@Matthew\_Shapiro](https://community.frame.work/u/Matthew_Shapiro)\
**Post date:** [February 17, 2024, 4:24pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/16 "2024-02-17T16:24:10Z")

</div>

Thank you for a most useful guide.  
And power-profiles-daemon 0.20 has been released that include’s SuperM1’s patches.

---

<div class="post-metadata">

**Author:** ![Wade](https://avatars.discourse-cdn.com/v4/letter/w/9de053/32.png) [@Wade](https://community.frame.work/u/Wade)\
**Post date:** [February 20, 2024, 10:56am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/18 "2024-02-20T10:56:53Z")

</div>

I’m curious: do people set their ppd mode to power-saver on battery or leave it on balanced? I just noticed that it doesn’t switch by default (at least, not for me since I’m not using a DE).

---

<div class="post-metadata">

**Author:** ![Leonard](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/leonard/32/28363_2.png) [@Leonard](https://community.frame.work/u/Leonard)\
**Post date:** [February 20, 2024, 11:29am UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/19 "2024-02-20T11:29:07Z")

</div>

Mine is pretty much always on power-saver (even on AC), but I don’t really run any intensive tasks.

---

<div class="post-metadata">

**Author:** ![Mario\_Limonciello](https://sea1.discourse-cdn.com/flex001/user_avatar/community.frame.work/mario_limonciello/32/19277_2.png) [@Mario\_Limonciello](https://community.frame.work/u/Mario_Limonciello)\
**Post date:** [February 20, 2024, 12:28pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/20 "2024-02-20T12:28:14Z")

</div>

Gnome will switch to power saver on low battery. That’s how I use it.

---

<div class="post-metadata">

**Author:** ![Tim\_Bosse](https://avatars.discourse-cdn.com/v4/letter/t/edb3f5/32.png) [@Tim\_Bosse](https://community.frame.work/u/Tim_Bosse)\
**Post date:** [February 20, 2024, 1:30pm UTC](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988/21 "2024-02-20T13:30:46Z")

</div>

I have a [script](https://codeberg.org/taim/my-setup/wiki/Power-Management) that switches to power saver when I disconnect from power supply, plus some wrappers around my build scripts that set performance on build, then drop back to power saver if on battery. I also leave libvirtd and associated bridges disabled by default, enabling them when needed, mostly during functional testing multiple VMs, then disabling them (though I think it doesn’t help once they’ve been activated?). All of this is probably, more-likely, most definitely overkill, but it’s what I do.

[Next page](https://community.frame.work/t/guide-fw13-ryzen-power-management/42988.md?page=2)
