NVIDIA Dynamic Power Management not working

Hi,

I am trying to set up Dynamic Power Management [1] because my idle 2060 laptop is pulling about 11W which halves my battery life.
Dynamic Power Management should shutdown my idle dedicated gpu, as the integrated gpu is handling my desktop.
I have tried to enable dynamic power management following the guide [2] from the Fedora docs and the official nvidia docs [1].
I have created /etc/modprobe.d/nvidia.conf as mentioned in the docs, as well as /lib/udev/rules.d/80-nvidia-pm.rules.
As well as running those commands:
cat /sys/bus/pci/devices/0000\:01\:00.1/power/control => auto

systool -vm nvidia =>


  Attributes:
    coresize            = "39145472"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "97"
    rhelversion         = "9.99"
    srcversion          = "8E349019DA8A9CC13D3B78D"
    taint               = "POE"
    uevent              = <store method only>
    version             = "510.60.02"

  Sections:

But even though all of that is enabled, my nvidia gpu is still not shutting down even when its sitting at 100% idel, as shown by

This is my setup:

OS: Fedora Linux 36
Kernel: 5.17.3-302.fc36.x86_64 
DE: Gnome 42.0 with Wayland
CPU: AMD Ryzen 7 4800H
IGPU: AMD ATI 05:00.0 Renoir
DGPU: NVIDIA GeForce RTX 2060 Mobile

Let me now if you need any further information!

Doing this as I can’t paste links yet.
[1]: download DOT nvidia DOT com/XFree86/Linux-x86_64/510.60.02/README/dynamicpowermanagement.html
[2]: rpmfusion DOT org/Howto/Optimus#Known_limitation

Unfortunately, this doesn’t work on Razen 4xxx platforms.

Is this work in progress because this does not work also on laptop with Ryzen 5900HX cpu and RTX 3080?

I don’t know, nvidia devs have been very quiet about runtime pm on AMD platforms. This information was only gathered by users testing and reporting a while ago. The conclusion back then was
Ryzen 4xxx and earlier → doesn’t work
Ryzen 5xxx → works.

BTW, you can’t use nvidia-smi to test since it’s a client which wakes up the gpu.
Only check the device nodes
cat /sys/bus/pci/devices/0000:01:00.0/power/runtime_status
(should be active or suspended)
and use powertop to confirm the consumption lowers while “suspended”

Furthermore, you seem to be running Wayland, I have no idea whether that’s working at all.

uhm, nvidia-powerd on Linux works with either Intel or AMD CPUs because it uses generic PCIe power management.

nvidia driver power management just sucks, even with an 11800H because i’ve tried this with an XPG Xenia 15 KC which also has miserable power efficiency due to its 3070 GPU.

nvidia-powerd has nothing to do with runtime pm, it’s a dynamic boost controller (which doesn’t really work).

Ahh yikes. So my only hope is that they support 4xxx at some point? I could make a feature request I guess.

By the way I semi soved my problem by blacklisting all nvidia modules and loading nouveau which seems to shut the gpu down properly. This means if I want to use the nvidia driver I have to restart but at least I have battery life:)