Has anyone been able to run an RTX 3060 laptop GPU at more than 80W on Linux?

I have a Legion 5 15ACH6H with AMD Ryzen 5 5800H / RTX 3060 running Arch GNU/Linux, enabled the testing repos, running the latest version of the Linux kernel and NVIDIA drivers but I still cant get more than 80W :)

OPEN SOURCE YOUR DRIVERS ALREADY, LET ME USE WHAT I HAVE PAID FOR!

Here you go.

These are just the kernel modules, the userspace is closed source and they dont plan on ever open sourcing that :)

LOL. I think you will find most of it’s done in the module.

Hi there! The 515.xx version of open drivers does not support notebooks. It “works” to varying degrees for some people, but it is not something we ever tested and significant portions of the notebook-specific code were explicitly disabled to focus on the data center usecase.

kekw

With the latest beta (525.53) on Arch Linux, I was able to get the GPU to use up to 94W!

Some relevant data:

❯ systemctl status nvidia-powerd      
● nvidia-powerd.service - nvidia-powerd service
     Loaded: loaded (/usr/lib/systemd/system/nvidia-powerd.service; enabled; preset: disabled)
     Active: active (running) since Sat 2022-11-12 10:32:33 EST; 17s ago
   Main PID: 80383 (nvidia-powerd)
      Tasks: 3 (limit: 16581)
     Memory: 564.0K
        CPU: 443ms
     CGroup: /system.slice/nvidia-powerd.service
             └─80383 /usr/bin/nvidia-powerd

Nov 12 10:32:33 zenyatta systemd[1]: Starting nvidia-powerd service...
Nov 12 10:32:33 zenyatta /usr/bin/nvidia-powerd[80383]: nvidia-powerd version:1.0(build 1)
Nov 12 10:32:33 zenyatta /usr/bin/nvidia-powerd[80383]: Dbus Connection is established
Nov 12 10:32:33 zenyatta systemd[1]: Started nvidia-powerd service.
❯ cat /proc/driver/nvidia/gpus/0000:01:00.0/power
Runtime D3 status:          Enabled (fine-grained)
Video Memory:               Active

GPU Hardware Support:
 Video Memory Self Refresh: Supported
 Video Memory Off:          Supported

( The power limits section is gone)

❯ cat /proc/driver/nvidia/gpus/0000:01:00.0/information 
Model:       NVIDIA GeForce RTX 3060 Laptop GPU
IRQ:         114
GPU UUID:    GPU-12aee388-0df9-6736-07f2-78dbb2c6b386
Video BIOS:      94.06.13.40.81
Bus Type:    PCIe
DMA Size:    47 bits
DMA Mask:    0x7fffffffffff
Bus Location:    0000:01:00.0
Device Minor:    0
GPU Excluded:    No

Looking forward to see more improvements, but this is a good start.

1 Like

Odd. I also have a 3060 (NVIDIA GA106M [GeForce RTX 3060 Mobile / Max-Q]), but the service fails with the beta drivers. With 520.56.06, the service would start successfully, but the nvidia-powerd process would get stuck maxing out a CPU core randomly so I disabled it.

❯ systemctl status nvidia-powerd.service
× nvidia-powerd.service - nvidia-powerd service
     Loaded: loaded (/usr/lib/systemd/system/nvidia-powerd.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Fri 2022-11-11 13:51:16 MST; 23h ago
   Main PID: 1622 (code=exited, status=1/FAILURE)
        CPU: 8ms

Nov 11 13:51:16 gazelle systemd[1]: Starting nvidia-powerd service...
Nov 11 13:51:16 gazelle /usr/bin/nvidia-powerd[1622]: nvidia-powerd version:1.0(build 1)
Nov 11 13:51:16 gazelle /usr/bin/nvidia-powerd[1622]: SBIOS support not found for NVPCF GET_SUPPORTED function
Nov 11 13:51:16 gazelle /usr/bin/nvidia-powerd[1622]: No matching GPU found
Nov 11 13:51:16 gazelle /usr/bin/nvidia-powerd[1622]: Failed to initialize RM Client
Nov 11 13:51:16 gazelle systemd[1]: nvidia-powerd.service: Main process exited, code=exited, status=1/FAILURE
Nov 11 13:51:16 gazelle systemd[1]: nvidia-powerd.service: Failed with result 'exit-code'.
Nov 11 13:51:16 gazelle systemd[1]: Failed to start nvidia-powerd service.
❯ cat /proc/driver/nvidia/gpus/0000:01:00.0/power
Runtime D3 status:          Enabled (fine-grained)
Video Memory:               Active

GPU Hardware Support:
 Video Memory Self Refresh: Supported
 Video Memory Off:          Supported
❯ cat /proc/driver/nvidia/gpus/0000:01:00.0/information
Model: 		 NVIDIA GeForce RTX 3060 Laptop GPU
IRQ:   		 128
GPU UUID: 	 GPU-df511031-9ea1-2619-6b1c-232873cc6692
Video BIOS: 	 94.06.31.00.2c
Bus Type: 	 PCIe
DMA Size: 	 47 bits
DMA Mask: 	 0x7fffffffffff
Bus Location: 	 0000:01:00.0
Device Minor: 	 0
GPU Excluded:	 No

I have also noticed that the service uses a considerable amount of CPU (up to 101%, a full core), but it does appear to allow the limit to go above 80W. I have observed up to 121W in some cases.

I haven’t looked too deep into this behavior yet, but it appears that nvidia-powerd will use a lot of cpu when actively allowing more power to be draw, in turn negating any possible gain from the CPU being under-used by making the cpu draw more power, thus reducing the amount of power available to the GPU…

nvidia-powerd uses only %2 of a single core on my system. Did you check journal maybe there are tips in it. I have a lenovo legion 5 Pro and with a app called lenovo legion toolkit i be able to push dynamic boost to 25 watts so now my gpu boosts as high as 105 Watt sustained. But still i dont know how to change configurable TDP levels so i can use my GPU at 140 watts. I remember someone saying that he have a knob on nvidia-settings app that can change power level between powersave balanced and performance it didnt appear on my system. @generix

Edit: Faced the same bug that nvidia-powerd randomly causing %100 cpu usage.

Latest stable driver, 5800H RTX 3060 nvidia-powerd still randomly using %100 thread of a core which causes some kind of overheating in games.

Throwing my hat in the ring. Able to achieve 115W no problem with my Legion 5 Ryzen 5800H RTX3060.
Can confirm that I am hard limited to 80W using the default Pop drivers, and the default Nvidia drivers. My workaround is admittedly pretty janky—literally just flashing a higher target wattage VBIOS. See more detailed instructions here, no issues so far.

I can confirm @jeffc3141 solution works, I did it all from the tty without using Windows.

Laptop : Legion 5 3060 5600H
Distro : Archlinux

I just tested and jumped from ~50-60 fps in a certain zone at night in Kingdom Come to 100+.

Thanks for the tip.

Hey guys,

The issue seems to be finally fixed with the new beta 530 drivers. My laptop RTX 3060 can fully utilize 140W.

Currently using the nvidia-beta-dkms ( 530.30.02-1 ) package from AUR.

Thanks for the info. Funny enough, for me it’s already working on 525.89.02. The default changed from 50 to 60 with 85 maximum, I can use nvidia-smi -pl to change it and it actually works.

This depends on nvidia-powerd.service, but it causes abnormal CPU usage

530.41.03

Fixed a bug in nvidia-powerd which could cause excessive CPU usage.

Edit: BTW, the base power limit doesn’t depend on nvidia-powerd, this is only for the occasional 15W boost when the cpu doesn’t draw much power.
I’m not using it at all.

Now that was short-lived fun. 430.41.03 breaks power limits completely, everything just “N/A”, nothing to set anymore.

1 Like

Hi Generix, thanks for your insights on this and many other threads.

Indeed, while playing Valheim or doing benchmarks on Unigine Heaven GPU gets “capped” on 80W on my ASUS TUF, if nvidia-powerd is disabled.

As soon as I type systemctl start nvidia-powerd to start the service, more power is redirected to the GPU, confirming that if you need a power input higher than 80W, nvidia-powerd needs to be started. I was masking this service unit because asusctl was calling it and it was using an insane amount of CPU usage even with the GPU in idle state.

Other than that, I see no harm on keeping this service running since the problems with CPU usage spikes seem to be gone for good.

Generix can you remind developers that we demand configurable tdp implemented under linux as linux users, i participate in lenovo legion discord channel and we hundreds of users there using linux on our laptops. When I first realize its possible to change tdp under linux i was like in happiest moment ever. Please dont take it from us.