465.24.02 - No longer able to set Graphics Clock Offset and Memory Transfer Rate Offset

Switching from GDM to SDDM enabled me to change my fan speed as well, so I’m seconding that this looks like an issue with xorg and root (or lack of it.)

Just to say that this issue seems present in potentially every branch that were recently updated (regression from a widespread change/fix?)

On amd64, I’ve tested manual fan control with at least:
450.102.04 (works), 450.119.03 (fails)
460.67 (works), 460.73.01 (fails)
465.19.01 (works), 465.24.02 (fails), 465.27 (fails)
I assume this applies to update from 390.141 to 390.143 as well.

As others stated, does work if Xorg is root or with CAP_SYS_ADMIN (not a good thing). Xorg as root is falling out of use, and many distributions will instead give limited access to /dev/nvidia*, so a solution would be appreciated.

Unfortunately, I am not able to duplicate issue locally.
I tried starting gnome with non root user and able to change GPU fan speed.

With Nvidia driver 465.27, I ran Xorg as rootless, for security, (logged in as a non-root user and then ran exec startx from tty1 to start Xorg and enter KDE Plasma) and GPU fan control and applying overclocks no longer works. It also fails to remember previously set power limit settings.

I originally thought it was due to a community tool but it’s apparently an issue with the driver, since the community tool is only a UX interface for doing the same things manually.

To my understanding, GDM runs Xorg as rootless by default when a particular kernel mode setting is used.

OS: Arch Linux
Coolbits: 31
(I did not use a login manager for this)

I can confirm this issue on Fedora 33 with latest xorg (xorg-x11-server-Xorg-1.20.11-1.fc33.x86_64).

When running xorg rootless -

$ nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=2000'


ERROR: Error assigning value 2000 to attribute
       'GPUMemoryTransferRateOffsetAllPerformanceLevels'
       (doraemon.nybl.net:1[gpu:0]) as specified in assignment
       '[gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=2000' (Unknown
       Error).

When running a user (non-root) session with xorg as the root user -

$ nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=2000'

  Attribute 'GPUMemoryTransferRateOffsetAllPerformanceLevels' (doraemon.nybl.net:1[gpu:0]) assigned value 2000.

To change between root/rootless mode I created a /etc/X11/Xwrapper.config with the following -

For xorg root mode -

needs_root_rights = yes

For xorg rootless mode, remove the file or put in -

needs_root_rights = auto

To check the user that xorg is running as -

ps -o user $(pgrep Xorg)

The nvidia-settings GUI reflects this also. It never accepts the updated clock rates when running xorg in rootless mode, but does when running in root mode.

1 Like

Just upgraded on Arch Linux and I’m experiencing the same problem. My GTX 1060 graphics card emits a harsh noise when spinning up/down so I set the fan speed to a fix value with this on startup:

nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUTargetFanSpeed=55"`

Coolbits is set to 4:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "Coolbits" "4"
EndSection

I start X as user with exec startx from tty1

Setting the GPUTargetFanSpeed returns an “Unknown Error”. I downgraded the nvidia packages and the kernel and got it working again. Thanks @jwmaness!

Downgraded from:

nvidia-465.27-5
nvidia-settings-465.27-1
nvidia-utils-465.27-1
linux-5.12.2.arch1-1

Downgraded to:

nvidia-460.67-4
nvidia-settings-460.67-1
nvidia-utils-460.67-1
linux-5.11.10.arch1-1

Fan control still broken. managed to get mem oc and core oc working but no fan control after downgrading from 465 on ubuntu 20.10. Currently using drivers 460.73.01 can’t downgrade. Will nvidia fix this issue?

@starfall Thanks man! that worked for me for now. until they fix this.

1 Like

Hey guys, I’ve spent whole night and found something from 3 years ago that helped me. Works well even from startup:

nvidia-settings -a GPUGraphicsClockOffsetAllPerformanceLevels=N -a GPUMemoryTransferRateOffsetAllPerformanceLevels=N
Where N = Mhz

Hope that will help somebody. I am on lqx kernel, and aside from that glitch 465 felt choppy. I first downgraded to 455 (nvidia-settings too), but still couldn’t change overclock somehow. But now it works.

Yes, for the modern nvidia drivers you have to use those new attributes “GPUGraphicsClockOffsetAllPerformanceLevels” and “GPUMemoryTransferRateOffsetAllPerformanceLevels”. This is known as per my report above.

However, this is only tangentially related to this issue, the overclocks and fan settings can’t be set in Xorg rootless mode on the 465 New Feature releases, either in the GUI or via the CLI.

The same issue occurs on the recently released 460.73 drivers as well. 460.67 did not have this issue.