[580.76.05] Deadlock on Hibernate; Suspend works

TL;DR: I can suspend and resume successfully, trying to hibernate lock up my computer

I’m trying to enable hibernation on my system with the following configuration

  • GPU: 2080 Ti
  • OS: Arch Linux; up-to-date
  • Kernel: 6.16.4-arch1-1
  • Driver Version: 580.76.05 (currently using nvidia-open package from Arch repos)
  • Desktop: Wayland session via Hyprland; issue also occurs from TTY

I have enabled the various systemd-services:

[~] <> * systemctl status nvidia-{suspend,hibernate,resume,suspend-then-hibernate}
○ nvidia-suspend.service - NVIDIA system suspend actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; enabled; preset: disabled)
    Drop-In: /etc/systemd/system/nvidia-suspend.service.d
             └─override.conf
     Active: inactive (dead)

○ nvidia-hibernate.service - NVIDIA system hibernate actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-hibernate.service; enabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-resume.service - NVIDIA system resume actions
     Loaded: loaded (/usr/lib/systemd/system/nvidia-resume.service; enabled; preset: disabled)
     Active: inactive (dead)

○ nvidia-suspend-then-hibernate.service - NVIDIA actions for suspend-then-hibernate
     Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend-then-hibernate.service; enabled; preset: disabled)
     Active: inactive (dead)

and as is default now on Arch PreserveVideoMemoryAllocations is enabled:

[~] <> * grep -e Preserve -e Temporary /proc/driver/nvidia/params
PreserveVideoMemoryAllocations: 1
TemporaryFilePath: "/var/tmp"

I have enough free disk space for the entire VRAM of my GPU (SWAP is on a separate partition)

[~] <> * df -h /var/tmp/
Filesystem                          Size  Used Avail Use% Mounted on
/dev/mapper/benediktDesktopVG-root   63G   49G   12G  82% /

and I also have set up other things required for hibernation such as swap and the kernel cmdline resume argument.

Suspending works as expected, no issues there. When I try to hibernate, my screen turns black and my PC locks up (I need to restart via longpressing the power button).
When I look at the journalctl logs of the previous boot after restarting I see these errors:

Aug 29 21:20:32 benediktDesktop kernel: INFO: task nvidia-modeset/:1033 blocked for more than 122 seconds.
Aug 29 21:20:32 benediktDesktop kernel:       Tainted: G           OE       6.16.4-arch1-1 #1
Aug 29 21:20:32 benediktDesktop kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Aug 29 21:20:32 benediktDesktop kernel: task:nvidia-modeset/ state:D stack:0     pid:1033  tgid:1033  ppid:2      task_flags:0x208040 flags:0x00004000
Aug 29 21:20:32 benediktDesktop kernel: Call Trace:
Aug 29 21:20:32 benediktDesktop kernel:  <TASK>
Aug 29 21:20:32 benediktDesktop kernel:  __schedule+0x409/0x1330
Aug 29 21:20:32 benediktDesktop kernel:  schedule+0x27/0xd0
Aug 29 21:20:32 benediktDesktop kernel:  schedule_preempt_disabled+0x15/0x30
Aug 29 21:20:32 benediktDesktop kernel:  rwsem_down_read_slowpath+0x25f/0x4d0
Aug 29 21:20:32 benediktDesktop kernel:  ? __pfx__main_loop+0x10/0x10 [nvidia_modeset 67073f9b1ac164a484166f3eb91f8f9e6efcf4be]
Aug 29 21:20:32 benediktDesktop kernel:  down_read+0x48/0xb0
Aug 29 21:20:32 benediktDesktop kernel:  nvkms_kthread_q_callback+0x144/0x170 [nvidia_modeset 67073f9b1ac164a484166f3eb91f8f9e6efcf4be]
Aug 29 21:20:32 benediktDesktop kernel:  _main_loop+0x93/0x150 [nvidia_modeset 67073f9b1ac164a484166f3eb91f8f9e6efcf4be]
Aug 29 21:20:32 benediktDesktop kernel:  ? srso_alias_return_thunk+0x5/0xfbef5
Aug 29 21:20:32 benediktDesktop kernel:  ? __pfx__main_loop+0x10/0x10 [nvidia_modeset 67073f9b1ac164a484166f3eb91f8f9e6efcf4be]
Aug 29 21:20:32 benediktDesktop kernel:  kthread+0xfc/0x240
Aug 29 21:20:32 benediktDesktop kernel:  ? __pfx_kthread+0x10/0x10
Aug 29 21:20:32 benediktDesktop kernel:  ret_from_fork+0x19a/0x1d0
Aug 29 21:20:32 benediktDesktop kernel:  ? __pfx_kthread+0x10/0x10
Aug 29 21:20:32 benediktDesktop kernel:  ret_from_fork_asm+0x1a/0x30
Aug 29 21:20:32 benediktDesktop kernel:  </TASK>

I also experience these issues with the nvidia and nvidia-dkms packages from Arch repos and with PreserveVideoMemoryAllocations disabled.

Let me know if you need additional information/logs and thanks in advance for any help :)

PS: Iirc there was a post-limit for new accounts (such as mine) on this forum, so it might take a bit before I can reply again here.

Just a quick update: This issue is still present with the new 580.82.09 driver

Hi @GamerBene19

Thank you for reporting issue, could you please help to share nvidia bug report from repro state.

nvidia-bug-report.log.gz (1.6 MB)

@GamerBene19 I was experiencing the same issue you’re facing on Pop OS 24.04. I wrote up my solution here .

After disabling NVreg_PreserveVideoMemoryAllocations , I no longer see nvidia-modeset blocking during suspend.