I use the following kernel parameter for a long time to force the performance level of my GTX 1060 to the lowest in order to reduce the fan noise of my notebook:
nvidia.NVreg_RegistryDwords="OverrideMaxPerf=1"
But after upgrading to the latest 465.24.02 driver on Archlinux, I start to hear the noise again. The nvidia-settings tool clearly shows that that performance level jumps to the highest only with light workload (web browsing using Firefox) and stays for a while (~40s) before jumping back.
# cat /proc/driver/nvidia/gpus/0000:01:00.0/power
Runtime D3 status: Enabled (coarse-grained)
Video Memory: Active
GPU Hardware Support:
Video Memory Self Refresh: Not Supported
Video Memory Off: Not Supported
Power Limits:
Default: N/A milliwatts
GPU Boost: N/A milliwatts
But unfortunately, the performance level still jumps wildly.
The PowerMizerEnable/PowerMizerDefault/PerfLevelSrc trick also doesn’t work. Actually, it doesn’t ever work on my machine even with older drivers.
Is there any way to force the performance level with the new driver?
The dynamic runtime pm is only for render offload on notebooks so can#t be used in your case.
Please check if you can limit clocks using nvidia-smi -lgc on your gpu to achieve the same without reboot, e.g. try
sudo nvidia-smi -lgc 139,500
Otherwise, please try to put the registrydword into a modprobe option file instead of the kernel commandline.
# nvidia-smi -lgc 139,500
Setting locked GPU clocks is not supported for GPU 00000000:01:00.0.
Treating as warning and moving on.
All done.
By the way, I am always using the same notebook. The Intel graphics card is disabled in BIOS. I’m using the kernel parameter instead of the modprobe option file because I want to use early KMS (https://wiki.archlinux.org/index.php/kernel_mode_setting).
Actually what I observe is that the old trick doesn’t work any more after the 465.24.02 update without any software/hardware configuration change on my box. And this is the reason why I suspect that the OverrideMaxPerf functionality is removed in the newer version of the driver.
im also trying to limit the power consumption / power level of my GPU. its an MXM-P1000 . how exactly did you get yours to limit its power? I tried Nvidia-sim pl , but it said it wasn’t supported :(
Apologies for the long response time on this. I’ve known about this issue, and I recently looked into it.
OverrideMaxPerf was an unofficial kernel parameter that was not officially supported and was removed at the time you saw the regression. However, RMForcePstate is another unsupported kernel parameter that does still exist that can accomplish the same effect, assuming you know the pstate you wish to force. I emphasize that this is unsupported and may cause unintended interactions with other power features such as dynamic boost or otherwise general instability. I myself am able to use it with a multi-monitor setup to force P8 with the desktop still being responsive (but games will not have good performance as expected).
In summary, you can specify
nvidia.NVreg_RegistryDwords="RMForcePstate=8"
to force P8, but again this is unsupported.
The related ramp-down discussions have separate threads that I will not comment on here.