PowerMizer power levels stuck at max on GTX 650 with 319.xx, 325.xx drivers

I’m using driver version 319.23. I’ve also tried 319.17. Preferred power mode is set to Adaptive in NVIDIA’s X Server Settings, but it only shows Performance Level 2 (maxed).

01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. GTX650-DC-1GD5

Is this a known regression? I think it worked correctly, with Performance Level dropping to 0 when running regular desktop and only going higher with OpenCL or similar loads, back in the 313.30 release and earlier.

No problem here.
External Media
External Media

It seems it has something to do with HDMI output and multi-monitor setup. Here are results of my debugging. I have 2x DVI + HDMI connections.

  1. 2x DVI output - power levels work correctly
  2. HDMI output only - power levels work correctly
  3. 2x DVI + HDMI - power levels maxed

For debugging, I’ve only used the bare-bones xorg.conf

Section “Device”
Identifier “Videocard0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BusID “PCI:1:0:0”
Screen 0
EndSection

When X was started with only 2x DVI output, power level were low. When HDMI was plugging in, it becomes available but output remained low.

Aside: xrandr reported HDMI-0 output available, but it would indicate “no such output exists” for a while. Eventually it would start throwing errors. I was only able to active HDMI-0 output via nvidia-settings utility.

When HDMI output was then activated, power level became maxed out. When HDMI is activated (plugged in) at start, they are also maxed.

Disabling the display via xrandr --output HDMI-0 --off turned off the display but power levels remain maxed.

I will be sending nvidia-bug-report logs to the linux-bugs@n.c address.

Just to be clear, when I mention 2x DVI, it means 2 displays each connected via DVI connector.

Hey!

I just installed Linux Mint 15. My Powermizer worked for a couple of reboots (installing “important” stuff) and now it is stuck aswell on max. performance. I think it started when I switched to the WebGL login theme - switching back, reinstalling the driver or using a newer version (310 versus 313). No matter what I do the adaptive feature doesn’t work anymore.

I use a Lenovo W510 with a FX880 Quadro. I attached the bug report but since nothing is crashing I doubt there is much usefull information. So far I just let Mint run without any open applications and the GPU still doesn’t scale back.
nvidia-bug-report.log.gz (61.5 KB)

You only seem to have one device connected? Maybe it is not the same problem.

I just run fluxbox for WM, so there is nothing that is causing any load when DVI + HDMI are connected at same time. With just HDMI or DVI, no problem with power consumption. 3 displays, power spike.

Has anyone duplicated this issue @ nVidia?

I’ve updated to 319.32 and the problem remains.

As per screenshot, the lowest frequency it gets to on Performance Level 2 is 850MHz. And it never goes down to lower Performance Level. Still burning energy for nothing…

Any ETA for possible fix for this??

I have a similar problem on my machine (GTX 560 Ti with 1 CRT and 1 LCD attached), adding

Option          "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3333; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"

to the Device section for the NVidia card in xorg.conf seems to have fixed it for me. There’s a decent summary of the options and what they do here.

Thank you. That allows for changing PowerMizer levels manually, but they were all fixed (ie. not changing). PerfLevelSrc did not affect whether they change depending on load or not. Your setting just make my card stuck at Performance Level 0.

Is it really this difficult to make Performance Levels adaptive? It worked fine in the past. I can’t really downgrade because those driver versions results in lots of Xid errors.

Looks like I didn’t test my configuration thoroughly enough. I thought adaptive mode was working properly on my machine after I tried playing some HD video files with mplayer/VDPAU and saw the performance mode change to level 1, but now I’ve tried playing a few games and it just stayed in level 0. Changing the mode in nvidia-settings to maximum performance doesn’t do anything either.

I’m convinced that the PowerMizer display is bugged, and the card actually does what it’s supposed to do. I don’t have the time to test, but I can show you how to test.

Compile and run the patch below, and use nvidia-smi to look at P-state and clock information that the patch will enable, and you can confirm if it’s PowerMizer being bugged or not:
[url]https://github.com/CFSworks/nvml_fix[/url]

Sorry, that does not matter. The PowerMizer display is not bugged and the rest don’t matter. It doesn’t matter because,

  1. in low power mode, temperature reported at desktop is 36C
  2. in default mode, temperature reported is 44C

and the ambient temperature did not change by 8C either. Highest temperature I can achieve via an OpenCL application is about 54-55C.

PowerMizer is bugged. It remains so in 325.08 drivers. And it is a regression from previous revision of the driver where it worked perfectly.

I have vacaloca’s patch for nvidia-smi installed, and the clock speeds reported by nvidia-smi are the same as in nvidia-settings.

problem remains in 325.15.

PowerMizer does not drop to lower power levels, just scales back GPU clock slightly while at fastest level.

I have the same problem as Franster. My GPU is a NVS 5200M in a Dell Inspiron 6540 notebook. Driver version is 325.15. I didn’t try older versions.

PowerMizer doesn’t switch to lower levels when there’s no activity and more than one monitor is attached. In particular:

  • 1 LCD panel - power levels work correctly
  • 1 DVI output - power levels work correctly
  • 1 LCD panel + 1 DVI outpu - power levels maxed

When the power levels work correctly, I see the levels switching down correctly on the PowerMizer tab in nvidia-settings. Also, temperature drops down to 40°C. When two displays are attached, the power levels don’t go down and temperature always remains somewhere above 55°C, making one of the fans run permanently.

Same problem here with a GTX 560m on an ASUS G74SX with 325.15. driver. I’ve tested this on Gentoo current with tuxonice-sources-3.9.4 kernel and pf-sources-3.10.1 kernel

  • Laptop LCD panel - power levels work correctly
  • Laptop LCD panel + VGA output - power levels maxed
  • Laptop LCD panel + DVI output - power levels maxed

Adding the PowerMizerParameters didn’t worked for me

Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3333; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"

UPDATE: Seems like this behavior is not a bug but a feature on 500 series cards (my case)
http://nvidia.custhelp.com/app/answers/detail/a_id/3017/~/gpu-runs-at-a-high-performance-level(full-clock-speeds)-in-multi-display-modes
nvidia-bug-report.log.gz (77.6 KB)

nvidia internal report 1372505 to track this issue.

This is expected when driving multiple monitors at different refresh rates. If needed we will update driver document.

It worked perfectly and correctly with older drivers. I have all displays set at 60Hz, yet HDMI is listed as 60.00 while the other two (DVI) are 60.02.

Again, this worked quite correctly with older drivers (around Nov. 2012). And I would still use older drivers if they didn’t suffer from the dreaded Xid errors and would actually compile with modern kernels… (aside from some terrible “lag” that remains with Wine with Kepler where my very old 9400GT experience was much smoother).

adamm@mira:~$ xrandr --screen 0
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
VGA-0 disconnected primary (normal left inverted right x axis y axis)
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 708mm x 398mm
   1920x1080      60.0*+   60.0     59.9     30.0     24.0     60.1     60.0  
   1600x1200      60.0  
   1360x768       60.0  
   1280x1024      75.0     60.0  
   1280x720       60.0     59.9  
   1024x768       75.0     70.1     60.0  
   800x600        75.0     72.2     60.3     56.2  
   720x480        59.9  
   640x480        75.0     72.8     60.0     59.9  

adamm@mira:~$ xrandr --screen 1
Screen 1: minimum 8 x 8, current 2048 x 1280, maximum 16384 x 16384
DVI-D-0 connected primary 1024x1280+0+0 left (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0  
   1152x864       75.0  
   1024x768       75.0     70.1     60.0  
   800x600        75.0     72.2     60.3  
   640x480        75.0     72.8     59.9  
DVI-D-1 connected 1024x1280+1024+0 left (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0  
   1152x864       75.0  
   1024x768       75.0     70.1     60.0  
   800x600        75.0     72.2     60.3  
   640x480        75.0     72.8     59.9

Actually, it’s not just the refresh rates that have to match – the entire mode timings have to match exactly. That’s resolution (active region) as well as blanking timings and polarities. We only lock the displays together if everything matches.