NVIDIA GPU RTX 4080 Stuck in p0 state, always max VRAM Clocks

Edit: I fixed it, with some help from ChatGPT weirdly. It told me to do this:

sudo nano /etc/modprobe.d/nvidia.conf
Replace entire contents with:
options nvidia NVreg_EnableGpuFirmware=0
options nvidia_drm modeset=1
options nvidia_drm fbdev=1
Save
sudo mkinitcpio -P
sudo limine-mkinitcpio
sudo poweroff
Wait 15 sec (I waited close to 5 min) and power on PC
And it was fixed. Hope this is helpful for others as well.

Hi! I’m new to Linux, CachyOS is my first distro, I switched from Windows 10 PRO last week. I’m using KDE Plasma 6.6.4 Wayland, everything is updated. 1440p 165 HZ monitor. Driver Version: 595.71.05 non-proprietary driver.

I can usually figure things out myself, but this one problem I cannot fix, I’ve been trying for many hours.

The VRAM Clock is always at max, 11201 MHz, and it also forces the Core Clock to 825 MHz needlessly. This happens when absolutely nothing is on, just sitting at the desktop and observing the console with nvidia-smi, only about 450 MHz of VRAM are used. It uses about 40W and the fans never stop spinning as they should under 50 Celsius. It never exits p0 state.

I didn’t install anything except for the “Install gaming packages” from CachyOS Hello, LibreWolf, LibreOffice and CoolerControl for my CPU and Case fans. Idle RAM usage is about 2.8 GB out of 32 GB.

Tried lowering the refresh rate to 60 HZ, disabling VRR completely, doing sudo reboot each time. No luck. Tried on x11 as well. I only have 1 monitor connected via DisplayPort 1.4a. I unplugged the HDMI 2.1 cable from my GPU, I use it for my 4K TV which is now completely disconnected.

I also entered TTY, no change. In TTY I tried sudo systemctl stop display-manager and again, no change. Always p0 state and max clocks.

Only by manually forcing the max clocks lower in LACT do the values stay low. (210MHz for Core and 405 for VRAM). At these settings I can watch 4K 60 FPS videos on YouTube with no problem, no overheating, no lag and low power consumption for idle tasks/browsing. But this is only a partial fix.
I guess I could also try to use the iGPU of my 7800X3D and figure out how to make the 4080 activate only in games, but I’m pretty sure there are drawbacks to this approach too.

Also, in gaming, some games don’t really utilize the GPU, Space Marine 2 for example barely jumps higher than 60% utilization, CPU at about 40% and the FPS stays low, jumping between 70-100 depending on what happens on screen, but it mostly stays around 70-80. Crimson Desert works well on the other hand. Tried the cachy version of Proton and Proton-GE. But this is a minor problem for now.

Can anyone please help me? I’ve never had such problems in Windows.

As in the closed driver?

The default driver is the nvidia open one, and I’ve never had such problems with it.

Did you do something to change drivers? What exactly?

Oops sorry my bad, I meant to write non-proprietary there.

Edit: I fixed it, with some help from ChatGPT weirdly. It told me to do this:

sudo nano /etc/modprobe.d/nvidia.conf
Replace entire contents with:
options nvidia NVreg_EnableGpuFirmware=0
options nvidia_drm modeset=1
options nvidia_drm fbdev=1
Save
sudo mkinitcpio -P
sudo limine-mkinitcpio
sudo poweroff
Wait 15 sec (I waited close to 5 min) and power on PC
And it was fixed. Hope this is helpful for others as well.