Roll back to a previous version of official nVidia driver

My issue is my GPU spikes to 100% utilization when playing various games (whether on Steam, Epic, etc), especially newer games like Resident Evil 4 Remake. Even older games like Resident Evil Village are causing this issue on the latest nVidia drivers that Garuda installs. This causes the game to completely freeze and it hasn't overheated at all nor throttled. Or, if it doesn't go to 100% utilization, sometimes it can get throttled and eventually will just hang. This is only under Linux. Under Windows, my GPU runs flawlessly and doesn't overheat, doesn't throttle, etc and it can get close to 100% GPU utilization but won't free up on me. Only does this happen under Linux.

I didn't have this issue a few months ago which I believe was on the drivers prior to version 525. I'm going to assume it's either the Linux nVidia drivers and/or also the Proton layer that probably causes the GPU to have to work harder than it does under Windows causing the issues. Even under older drivers, it never hung but I did see temps were higher and GPU utilization was higher under Linux than Windows.

What I would like to do is roll back to a specific older nVidia proprietary driver. I've searched in this forums, the Arch Linux wiki and the Garuda Linux wiki but didn't find anything that would apply to Garuda.

Searching in Octopi, I couldn't find an older version of the driver to install other than the 490 which I don't want to go back to that.

Any ideas? When I started using Garuda back in December of 2022, I wasn't having these issues with my GPU. That time I believe it was prior to version 525 of the nVidia drivers so I would like to try and go back to one of those to see if the problem goes away.

Also, I've created a custom fan-curve under Green With Envy because it seemed the default fan curve wasn't good enough to handle the higher usage under Linux. But that's not even happening and when it stays at 100% GPU utilization for a few seconds, then the game freezes under Linux. As I've stated, this doesn't happen under Windows at all.

What is the proper way to install older drivers in Garuda Linux if there are any?

Thanks!

System:
Kernel: 6.2.10-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/vmlinuz-linux-zen
root=UUID=60fb4d80-b0d6-45ae-912a-2762d06057cb rw rootflags=subvol=@
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
loglevel=3 nvidia-drm.modeset=1 ibt=off
Desktop: KDE Plasma v: 5.27.4 tk: Qt v: 5.15.8 wm: kwin_x11 vt: 1 dm: SDDM
Distro: Garuda Linux base: Arch Linux
Machine:
Type: Desktop System: Gigabyte product: B450M DS3H v: N/A
serial: <superuser required>
Mobo: Gigabyte model: B450M DS3H-CF serial: <superuser required>
UEFI: American Megatrends LLC. v: F64a date: 02/09/2023
CPU:
Info: model: AMD Ryzen 5 3600 bits: 64 type: MT MCP arch: Zen 2 gen: 3
level: v3 note: check built: 2020-22 process: TSMC n7 (7nm)
family: 0x17 (23) model-id: 0x71 (113) stepping: 0 microcode: 0x8701030
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
L3: 32 MiB desc: 2x16 MiB
Speed (MHz): avg: 3613 high: 3957 min/max: 2200/4208 boost: enabled
scaling: driver: acpi-cpufreq governor: performance cores: 1: 3600 2: 3600
3: 3600 4: 3582 5: 3600 6: 3432 7: 3600 8: 3593 9: 3600 10: 3600 11: 3600
12: 3957 bogomips: 86235
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Graphics:
Device-1: NVIDIA TU116 [GeForce GTX 1660] vendor: ASUSTeK driver: nvidia
v: 530.41.03 alternate: nouveau,nvidia_drm non-free: 530.xx+
status: current (as of 2023-03) arch: Turing code: TUxxx
process: TSMC 12nm FF built: 2018-22 pcie: gen: 3 speed: 8 GT/s lanes: 16
ports: active: none off: DP-1,DVI-D-1,HDMI-A-1 empty: none bus-ID: 06:00.0
chip-ID: 10de:2184 class-ID: 0300
Display: x11 server: X.Org v: 21.1.8 with: Xwayland v: 23.1.1
compositor: kwin_x11 driver: X: loaded: nvidia unloaded: modesetting,nouveau
alternate: fbdev,nv,vesa gpu: nvidia,nvidia-nvswitch display-ID: :0
screens: 1
Screen-1: 0 s-res: 5760x1080 s-dpi: 101 s-size: 1450x272mm (57.09x10.71")
s-diag: 1475mm (58.08")
Monitor-1: DP-1 mapped: DP-0 note: disabled pos: center model: HP E223
serial: <filter> built: 2018 res: 1920x1080 hz: 60 dpi: 102 gamma: 1.2
size: 476x268mm (18.74x10.55") diag: 546mm (21.5") ratio: 16:9 modes:
max: 1920x1080 min: 640x480
Monitor-2: DVI-D-1 mapped: DVI-D-0 note: disabled pos: primary,left
model: HP E223 serial: <filter> built: 2018 res: 1920x1080 hz: 60 dpi: 102
gamma: 1.2 size: 476x268mm (18.74x10.55") diag: 546mm (21.5") ratio: 16:9
modes: max: 1920x1080 min: 640x480
Monitor-3: HDMI-A-1 mapped: HDMI-0 note: disabled pos: right
model: HP E223 serial: <filter> built: 2018 res: 1920x1080 hz: 60 dpi: 102
gamma: 1.2 size: 476x268mm (18.74x10.55") diag: 546mm (21.5") ratio: 16:9
modes: max: 1920x1080 min: 640x480
API: OpenGL v: 4.6.0 NVIDIA 530.41.03 renderer: NVIDIA GeForce GTX
1660/PCIe/SSE2 direct-render: Yes
Audio:
Device-1: NVIDIA TU116 High Definition Audio vendor: ASUSTeK
driver: snd_hda_intel bus-ID: 1-1:2 v: kernel pcie: chip-ID: 0d8c:0012
gen: 3 class-ID: 0300 speed: 8 GT/s lanes: 16 bus-ID: 06:00.1
chip-ID: 10de:1aeb class-ID: 0403
Device-2: AMD Starship/Matisse HD Audio vendor: Gigabyte
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 08:00.4 chip-ID: 1022:1487 class-ID: 0403
Device-3: C-Media USB Audio Device type: USB
driver: hid-generic,snd-usb-audio,usbhid
API: ALSA v: k6.2.10-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 0.3.68 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: Gigabyte driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
lanes: 1 port: f000 bus-ID: 04:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp4s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Device-2: Microsoft Xbox 360 Wireless Adapter type: USB driver: usbfs
bus-ID: 1-5:4 chip-ID: 045e:0719 class-ID: ff00 serial: <filter>
Drives:
Local Storage: total: 7.06 TiB used: 4.95 TiB (70.2%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Silicon Power
model: SPCC Solid State Disk size: 238.47 GiB block-size: physical: 512 B
logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 91.3
scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 vendor: Hitachi model: HDS5C3030ALA630
size: 2.73 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
type: HDD rpm: 5700 serial: <filter> rev: A580 scheme: GPT
ID-3: /dev/sdc maj-min: 8:32 vendor: Hitachi model: HDS723020BLA642
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
type: HDD rpm: 7200 serial: <filter> rev: A5C0 scheme: GPT
ID-4: /dev/sdd maj-min: 8:48 vendor: Samsung model: HD103SI
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
type: N/A serial: <filter> rev: 1118 scheme: GPT
ID-5: /dev/sde maj-min: 8:64 type: USB vendor: JMicron Tech model: N/A
size: 931.51 GiB block-size: physical: 4096 B logical: 512 B type: N/A
serial: <filter> rev: 0509 scheme: MBR
ID-6: /dev/sdf maj-min: 8:80 type: USB vendor: Toshiba model: MQ01ABF050
size: 465.76 GiB block-size: physical: 512 B logical: 512 B type: HDD
rpm: 5400 serial: <filter> scheme: GPT
Partition:
ID-1: / raw-size: 97.66 GiB size: 97.66 GiB (100.00%)
used: 15.76 GiB (16.1%) fs: btrfs dev: /dev/sdc4 maj-min: 8:36
ID-2: /boot raw-size: 1000 MiB size: 1000 MiB (100.00%)
used: 302.3 MiB (30.2%) fs: btrfs dev: /dev/sdc2 maj-min: 8:34
ID-3: /boot/efi raw-size: 1000 MiB size: 998 MiB (99.80%)
used: 608 KiB (0.1%) fs: vfat dev: /dev/sdc1 maj-min: 8:33
ID-4: /home raw-size: 1.71 TiB size: 1.71 TiB (100.00%)
used: 62.1 GiB (3.6%) fs: btrfs dev: /dev/sdc5 maj-min: 8:37
ID-5: /var/log raw-size: 97.66 GiB size: 97.66 GiB (100.00%)
used: 15.76 GiB (16.1%) fs: btrfs dev: /dev/sdc4 maj-min: 8:36
ID-6: /var/tmp raw-size: 97.66 GiB size: 97.66 GiB (100.00%)
used: 15.76 GiB (16.1%) fs: btrfs dev: /dev/sdc4 maj-min: 8:36
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 15.54 GiB used: 1.81 GiB (11.6%)
priority: 100 dev: /dev/zram0
ID-2: swap-2 type: partition size: 17 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/sdc3 maj-min: 8:35
Sensors:
System Temperatures: cpu: 53.6 C mobo: 32.0 C gpu: nvidia temp: 43 C
Fan Speeds (RPM): N/A gpu: nvidia fan: 34%
Info:
Processes: 378 Uptime: 12h 3m wakeups: 0 Memory: 15.54 GiB
used: 6.49 GiB (41.8%) Init: systemd v: 253 default: graphical
tool: systemctl Compilers: gcc: 12.2.1 clang: 15.0.7 Packages: pm: pacman
pkgs: 1789 libs: 476 tools: octopi,paru Shell: fish v: 3.6.1 default: Bash
v: 5.1.16 running-in: konsole inxi: 3.3.26
Garuda (2.6.16-1):
System install date:     2023-04-09
Last full system update: 2023-04-10 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-dkms
Windows dual boot:       Probably (Run as root to verify)
Failed units:

No, rolling back to a previous version of the driver is not supported. Also, for a 1660 it's pretty normal to be at 100% when playing games like RE 4 Remake.

4 Likes

Okay, that's what I thought. Too bad then because I just can't make them work under Linux anymore when they used to on the older nVidia proprietary drivers.

I definitely think it's a combination of nVidia's drivers and possibly the Proton layer causing the GPU to have to work harder under Linux than it does under Windows.

I've even put the graphics settings to RE4 to use interlaced mode which seemed to help reduce the temps and such, but now it's not helping. The game freezes within a few seconds now after playing under Linux.

Hopefully, nVidia releases some newer drivers soon that will appear in the Garuda repos that hopefully will address this issue. I think the latest RC version states something to this effect on nVidia's website.

Thanks for the info!

Can you please check nvidia-smi on your terminal when the GPU load is happening? It should tell you what's using your GPU exactly... I have no problems with the latest drivers, so I think that it may be something else. Also, have you rebooted after the update?

2 Likes

Yes, I've rebooted multiple times. I had to reboot because I had to enable the nvidia-drm.modeset kernel parameter so that Geen With Envy could adjust y fan curve speed. In any case, I have MangoHud running as well as Green with Envy to monitor what is going on. I'll do the same with nvidia-smi. It's very strange how this has been happening and again only under Linux. I don't have this issue with Windows, but then, the Windows driver are probably better "developed" than the ones in Linux. I know nVidia treats Linux kind of like a second-class citizen. I would go for an AMD GPU but I can't afford a new GPU right now and my GTX-1660 is only about 2.5 years old when I purchased it new in 2020 when I rebuilt my PC back then.

Well I ran nvidia-smi in loop mode and within a few seconds of the GPU going to 100% utilization (and the temps were nowhere near throttling), it crashed. I checked journalctl and found this error message which did pop-up via nvidia-smi:

Apr 10 10:00:30 garuda kernel: NVRM: Xid (PCI:0000:06:00): 109, pid=158349, name=re4.exe, Ch 000000d6, errorString CTX SWITCH TIMEOUT, Info 0x83c07f

Also, the most memory usage was from Resident Evil4 Remake. Just really weird as this wasn't happening before. I'm also using the latest custom Proton from GE (GE-Proton7-54). I might just try the default proton to see if that works. Might just be the latest custom GE proton causing issues.

Something else I'll try is to turn off the compositor in KDE, as well as go down to one monitor. The problem with one monitor is that I can't watch nvidia-smi in another window unfortunately. But my assumpiton is also the issue with Xorg and multiple monitors is it's trying to refresh across all three of my monitors. And using Wayland, I can't control the fan curve as the nvidia-drm.modeset parameter doesn't work under wayland which is a shame.

I'll keep trying to see what works. I just know many months ago under an older nVidia driver, this problem didn't exist. Just really strange.

Okay, after much experimentation, I've concluded that leaving the KDE compositor on definitely spikes GPU usage up by 10% or more. Once I turn off the compositor, the GPU doesn't spike as high and generally speaking, stays around the same as under Windows, albeit still higher than Windows, but I've always expected that due to the Proton layer.

This also explains why under Wayland, I can never play the games as the built-in compositor is probably spiking the GPU usage up and since I cannot use Green with Envy in Wayland (as there are no hooks into the fan control apparently due to that add-on not being available under Wayland), I have to stick with Xorg which is fine. I just have to ensure I turn off my extra monitors so that screen tearing goes away. Luckily, I have a script to do that using xrandr to turn off all but my main display and then when I'm done, I can use it to turn on all the displays again.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.