CachyOS(Arch) GTX 1650 Ti Nvidia power limit reduced to 5W at a random time

nvidia-bug-report.log.gz (386.8 KB)
Hello, newbie here, I came from CachyOS forum to try and find a solution to this issue of power limit missing or set to 5W, resulting in the GPU only able to use 5W of power. This issue happens randomly whether it’s as fast as an hour or takes an entire day to finally trigger, but once triggered the power usage stays at 5W and doesn’t go any higher.

The only fix is putting it to sleep and waking it up but that is only temporary since it happens again very quickly, or do a reboot. The nvidia-powerd.service is turned off since my GPU does not support it. And no I could not change the power limit as it shows me this message instead:

sudo nvidia-smi -pl 45
Changing power management limit is not supported for GPU: 00000000:01:00.0.
Treating as warning and moving on.
All done.

Here are my specs:
Intel i5 10300H
16GB RAM
GTX 1650 Ti
Nvidia Driver version 565.57.01 (Open)

Here are some logs from the previous forum if it helps any
powerprofilesctl

powerprofilesctl
* performance:
    CpuDriver:  intel_pstate
    Degraded:   no

  balanced:
    CpuDriver:  intel_pstate
    PlatformDriver:     placeholder

  power-saver:
    CpuDriver:  intel_pstate
    PlatformDriver:     placeholder

systemctl status nvidia-powerd

systemctl status nvidia-powerd
○ nvidia-powerd.service - nvidia-powerd service
     Loaded: loaded (/usr/lib/systemd/system/nvidia-powerd.service; disabled; preset: disabled)
     Active: inactive (dead)

nvidia-smi -d -q POWER

nvidia-smi -q -d POWER

==============NVSMI LOG==============

Timestamp                                 : Thu Dec  5 17:30:38 2024
Driver Version                            : 565.57.01
CUDA Version                              : 12.7

Attached GPUs                             : 1
GPU 00000000:01:00.0
    GPU Power Readings
        Power Draw                        : 3.92 W
        Current Power Limit               : 5.00 W
        Requested Power Limit             : 50.00 W
        Default Power Limit               : 50.00 W
        Min Power Limit                   : 1.00 W
        Max Power Limit                   : 50.00 W
    Power Samples
        Duration                          : Not Found
        Number of Samples                 : Not Found
        Max                               : Not Found
        Min                               : Not Found
        Avg                               : Not Found
    GPU Memory Power Readings 
        Power Draw                        : N/A

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 35000000 > /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw && echo 35000000 > /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw && echo 0 > /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! 🎉💪