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-openpackage 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.