Nvidia GPU locked at low performance mode

Hello, everyone.

I’ve been having issues with the NVIDIA 550.90.07 driver. I am running Fedora Linux and I’ve wanted to play a few games in my spare time. I’ve noticed that the wattage of my GPU is always locked at 10 W. I’m on a Surface Laptop Studio 1, with the Intel Integrated Graphics along with a Dedicated RTX 3050 Ti (4G).

I already have PRIME set up and Steam along with the games run under it are ran on the Dedicated GPU (The RTX 3050 Ti).

I have already attempted to manually set the wattage to it’s recommended 35W - 50W but every driver version after 53x.xx disallows that.

Fixing GPU Undersized Issue – Correcting CPU Power Limits

1️⃣ Preparation: Tools & Basic Knowledge

Before troubleshooting, ensure you have:
Technical knowledge of hardware and manufacturer specifications
Tools like a multimeter to measure voltage and current
Manufacturer data on CPU, GPU, and power supply wattage


2️⃣ Problem: GPU is “Undersized”

This means the GPU is not receiving enough power. Possible causes:
🔹 Incorrect CPU power limits
🔹 Power supply cannot deliver enough wattage
🔹 Misconfigured power settings in Linux


3️⃣ Check Current Power Limits

Run the following commands to check how much power your CPU is allowed to use:

cat /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw
cat /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw
cat /sys/class/powercap/intel-rapl:0/constraint_2_power_limit_uw

💡 Example (incorrect configuration):

60000000
115000000
215000000

Here, the CPU is allowed to use up to 215W, which is too high.


4️⃣ Check Manufacturer Specifications

For my CPU, the manufacturer specifies:
✔️ Base Power Consumption: 45W
✔️ Maximum Turbo Power Consumption: 115W
✔️ Minimum Guaranteed Power: 35W
💡 My power adapter only provides 100W, which is not enough!


5️⃣ Correct the Power Limits

Let’s set the correct values to ensure system stability.

1️⃣ Create a systemd service file:

sudo nano /etc/systemd/system/set_power_limits.service

2️⃣ Insert the following script:

[Unit]
Description=Set CPU Power Limits
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo 45000000 > /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw && echo 100000000 > /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw && echo 115000000 > /sys/class/powercap/intel-rapl:0/constraint_2_power_limit_uw'
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

💾 Save the file:
🔹 Press Ctrl + O (Write the file)
🔹 Press Enter (Confirm)
🔹 Press Ctrl + X (Exit editor)


6️⃣ Apply Changes Automatically After Reboot

Now, enable and start the service to apply the changes at every boot:

sudo systemctl enable set_power_limits.service
sudo systemctl start set_power_limits.service
sudo reboot

Done! The CPU will no longer draw excessive power, and the GPU will receive enough energy. No more Undersized errors! 🎉💪