Lenovo LOQ RTX 4070 locked at 35W or 55W
Lenovo LOQ RTX 4070 locked at 55W on Linux – FIX (nvidia-powerd + performance profile)
It may also involve the 4060 and 4050.
I’m posting this in case it helps someone with a Lenovo LOQ / Legion laptop using an RTX 40-series GPU on Linux. My system:
- Operating System: EndeavourOS
- KDE Plasma Version: 6.6.1
- KDE Frameworks Version: 6.23.0
- Qt Version: 6.10.2
- Kernel Version: 6.18.9-zen1-2-zen (64-bit)
- Graphics Platform: X11
- Processors: 16 × AMD Ryzen 7 7435HS
- Memory: 32 GiB of RAM (31.0 GiB usable)
- Graphics Processor: NVIDIA GeForce RTX 4070 Laptop GPU
- Manufacturer: LENOVO
- System Version: LOQ 15ARP9
THE Problem:
GPU was stuck around:
-
35W default limit (While searching online, I discovered cases of 55w.)
-
70 fps max under load (for test y run FurMark GUI), FurMark (GL), MSAAx8, 70 FPS, 35W (GPU), system 50W
nvidia-smi showed:
power.default_limit: 55W
power.enforced: 35W
power.max_limit: 115W
That already hinted that the problem was something that restricted and forced me to use my graphics card in safe mode.
Then I try:
sudo nvidia-smi -pl 115
Returned:
Changing power management limit is not supported
Root Cause
Two things were limiting performance: nvidia-powerd was disabled
Check with: systemctl status nvidia-powerd.service
Mine was: Dead
This service is required for:
-
Dynamic Boost
-
CPU ↔ GPU power sharing
-
Unlocking higher TGP on modern RTX mobile GPUs
Without it, the GPU stays near the conservative default limit.
First solution
Enable the NVIDIA power daemon
sudo systemctl enable nvidia-powerd.service
sudo systemctl start nvidia-powerd.service
Verify:
systemctl is-enabled nvidia-powerd.service
It should return:
enabled
Switch the Lenovo profile to Performance mode
Use Fn+Q (or equivalent) until performance mode (red icon) is active.
If you still have problems
Some users may need to expose Windows ACPI features:
Add to kernel parameters:
acpi_osi=! acpi_osi="Windows 2022"
(For systemd-boot users: add to the loader entry.)
This can help if certain ACPI performance methods are hidden from Linux.
Notes:
In addition to checking the nvidea service, you should also check the obvious. There is an option in the BIOS that may be causing this problem:
- Wireless LAN: Enabled
- Storage Controller Mode: AHCI
- Graphics Device: Discrete Graphics (this)
- AMD ™ technology: Enabled
- BIOS Back Flash: Enabled
- Hotkey Mode: Disabled
- Fool Proof Fn Ctrl: Disabled
- Disable Built-in Battery: [Enter] Temporarily disable battery service; the system battery will be automatically enabled when AC is reconnected (this)
- BIOS Self-healing: enabled
- Restore Default Overclocking: Disabled
- Battery Level Protection: OFF .Auto (Dynamic balance system power to keep battery cap when AC is plugged in), ON (EC limits system power and performance), OFF (System peak power Performance turbo AC adapter and Battery Hybrid supply) >(THE THING)<
- GPU Overclocking: enabled
- Performance Boost Settings Option: enabled
You have to set it to OFF, because if it is ON or AUTO, the EC restricts the power to the graphics card. This also affects Windows, so if you have Dual-Boot, you can check with Windows if this configuration is causing your problem.
To enter the BIOS if you don’t have grub visible, press F2 repeatedly.
Conclution:
Result
After enabling nvidia-powerd + Performance mode:
FurMark (GL)
MSAAx8
~142 FPS
~101W sustained
GPU now dynamically boosts properly.
Lenovo Linux modules
System was using:
-
ideapad_laptop
-
platform_profile
-
lenovo_wmi_*
Linux was NOT the issue.
The GPU was limited because:
-
nvidia-powerdwas disabled by default -
Laptop was in Balanced mode
Once fixed, performance matches Windows behavior. or more.