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

My previous question did not get any response regarding this, however it may be a problem with the Nvidia drivers and supplied firmware that’s limiting the power draw of laptop RTX 3060 GPUs to 80W maximum.

So an important question to ask is if ANYONE on ANY laptop has been able to get a laptop 3060 GPU to draw more than 80W on linux with the proprietary drivers? Please share here, thanks.

1 Like

Unfortunately, rarely anyone ever signs up and reports here that things are actually working.
My guess about that issue is platform power profiles, specified by the uefi firmware:
https://mjg59.dreamwidth.org/54923.html
https://www.phoronix.com/scan.php?page=news_item&px=Linux-ACPI-Platform-Profile

https://forums.developer.nvidia.com/t/severe-throttling-on-thinkpad-t14-gen-1-with-geforce-mx330/177366

Thanks for the links @generix, it could be an issue with platform power profiles.

But to exclude an issue with nvidia drivers/supplied firmware (some kind of software limit) we need confirmation from someone that they were able to run an RTX 3060 mobile GPU at over 80W at all. Any leads here would help immensely.

Yes, some positive datapoints or even just more negative would be helpful.
Here’s a good list of notebooks with 3060s to start:
https://www.notebookcheck.net/These-are-the-slowest-and-fastest-GeForce-RTX-3060-laptops-you-can-currently-buy.560771.0.html
Looking for those:
|Schenker XMG Core 17|130 Watt|
|Schenker XMG Core 15|120 Watt|
leads me to an XMG user group on reddit:
https://www.reddit.com/r/XMG_gg/comments/ny7mvq/xmg_core_15_issue_with_brightness_in_linux/
While the linux users there mostly talk about problems with function keys/backlight, it might be worth a shot asking them how much watts they can squeeze out of their 3060.

Datapoints of notebooks stuck at 80W:

OP’s Lenovo Legion 5 AMD/RTX3060, 130W
https://forums.developer.nvidia.com/t/lenovo-legion-5-rtx-3060-460-x-470-x-495-x-power-draw-stuck-at-80w-windows-does-130w/192174?u=generix

Unknown RTX 2060, 115W
Clevo NH77DPQ, Intel/RTX 3060, 120W
https://forums.developer.nvidia.com/t/rtx-2060-refresh-only-draws-80w-on-linux-but-115w-from-windows-am-i-missing-something/159755?u=generix

Acer Nitro 5, AMD/RTX 3060, 95W
https://forums.developer.nvidia.com/t/nvidia-495-44-regression-graphical-glitches-in-diablo-2-resurrected/193329/3?u=generix

Thanks a lot for compiling this and the followup questions on other threads.

I’m going to go around asking owners of laptops with mobile 3060s and share the outputs of nvidia-smi. Will report back here.

It’d be great if someone from Nvidia answered this. It really could be that the drivers are not able to run this card at more than 80W!

Can you share an acpidump of your machine, maybe something is visible there that points tto a specific direction?

acpidump (1.3 MB)
Sure, please have a look.

You’ll notice a lot of Notify (NPCF, 0xC0) calls in DSDT. I believe these are all unhandled because there’s no driver listening for them (i.e. the equivalent of nvpcf.sys on Windows) and power limits don’t change like they should.

Also note

> 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

Power Limits:
 Default:                   80000 milliwatts
 GPU Boost:                 4294967295 milliwatts

I’m not sure how the “Power Limits” values are populated but it could be something hardcoded in to the drivers.

I own Legion 5 Pro 16ACH6H with RTX3060. From my basic observations, these power levels are preconfigured in customized VBIOS (Lenovo), default target value is set to exactly 80W, as shows picture below. And I can easily predict, that this problem with RTX3000 GPUs running at low TGP, affects whole Lenovo Legion series…

Do note the value under "Limit’ (130W). For sure your model does more than 80W on Windows, around 130. The 80W listed there is more like minimum/base.

You can use HwInfo to confirm during load. My Legion 5 15ACH6H hits 130W routinely. Just not on Linux. You can also verify with benchmarks etc.

Yes sure, I completely understand you, but I´m using only Linux (Ubuntu based distros) for my work…

I´m talking about VBIOS that contains all 3 presets for dGPU power levels, which are in Legion 5 Pro following:

Quiet /blue/ - 80W (Min. Base = Target VBIOS)
Auto /white/ - approx. 95W
Performance /red/ - 115W + 15W (Max. Base + Boost DB2.0 = Limit VBIOS)

Is there any existing solution how to switch between these preconfigured power states under Linux ?

There doesn’t seem to be any. All Ampere series mobile GPUs are capped to the base wattage (e.g. 80W for 3060) on Linux.

This is mostly likely an nvidia driver/firmware (i.e. binary blob shipped with drivers) issue and needs to be solved by nvidia.

You can use GitHub - adnanpri/legion-wmi: A WMI driver for Lenovo Legion series of laptops to change the power states but as the readme suggests the nvidia drivers don’t respond to the change.

OK, if under Windows is everything working as expected (assuming that NVDA0820 driver responsible for power switching is bundled only inside Nvidia Drivers for Win10, and inside Linux version is missing), is there any method (reverse engineering) how to find what exactly NVDA0820 driver is doing ?

Someone should try using GWE to slide the power limit slider up to raise the power limit.

Because this doesn’t sound like a driver or Linux issue at all, it sounds like intended behavior.

Every single 3060 Mobile GPU I can find has a stock power limit of 80W. Most of them have a MAX power limit of 80W, and so they can’t be set to go higher on Linux or Windows. But I have found a few where the Power Limit Default is 80W and Max is 90, 95, or in one or two cases, 110 or 115.

But of course you don’t get over that in Linux, because you’re not raising the power limit. You have to raise the power limit (on any OS) in order to go over that default 80W.

This is the same for desktop GPUs. Go look at the TechPowerUp page for the EVGA XC3 Ultra RTX 3090. It’s Power Limit is Default 350W and it’s Max PL is 366W. It won’t go over 350W on Windows OR Linux, but on Windows AND Linux I can raise the PL to exactly 366W using Afterburner/X1 on Windows and GreenWithEnvy on Linux.

The only difference here is that these laptops will have custom vendor hardware control utilities with different “power profiles,” and those power profiles just raise the default limit.

If you go into GWE, I would be almost certain that you will be able to raise your default power limit if that mobile GPU has a Max PL above 80W. You will be able to raise it to exactly what it says the Board Power Limit is on TechPowerUp.

But for those of you who have the majority of models with 80W Max PLs, there’s nothing you can do and it’s functioning as intended, and doesn’t go over 80W on Windows either.

GWE calls nvidia-smi to modify power limits. Since it is not possible to do it via nvidia-smi, GWE wouldn’t work too.

Can confirm my Legion 5 Pro 16ACH6H-82JQ(RTX3060) is also stuck on 80W on Linux even on the latest stable 495.xx driver.

My Legion 5 Pro is having the same symptoms as yours i tried GWE way and it doesnt let you change Power Limits dumped and decompiled dsdt tables there are too many methods in and im kinda new to this and lost in it. Please Generix help us reach to nvidia developers to save us from Microsoft BS.

These problems comes with new Ampere GPUs and their feature of “customizable TGP” in some specific range like 80-115W for Base, but you know one fixed value at Max TDP will be easy solution…

I can imagine why configurable TGP would be useful for laptops etc. but we just want feature parity with Windows drivers here. Really need some kind of response from Nvidia devs regarding this.

Regarding reverse engineering, I’m sure it’s doable, but we need more people with the right skill set to 1) be aware of the problem 2) put in the effort to fix it, and Nvidia is best positioned to resolve the issue for the growing number of Linux users.

Before lenovo recovery formatted all of my ssds i had DSDT tables decompiled on my system did anyone examined DSDT tables so we can blind shot all methods in there to maybe find the one supposed to change GPU TDP?