Summary
Attempting to hibernate (systemctl hibernate) on a hybrid-graphics laptop with the
dGPU active crashes in the nvidia PM notifier before the hibernation image is written.
systemd-sleep is killed mid-notifier ("exited with irqs disabled"), hibernation is
aborted, and the GPU is left permanently locked (RC watchdog loop) — the Wayland
compositor never recovers and a hard reboot is required. 100% reproducible on first
attempt under the conditions below.
Environment
- Driver: 595.80, open kernel module (Fedora RPMFusion
akmod-nvidia-595.80-1.fc44,
kmod-nvidia-7.0.13-200.fc44.x86_64-595.80-1.fc44)
- Kernel:
7.0.13-200.fc44.x86_64 (Fedora 44), PREEMPT(lazy); Secure Boot disabled,
lockdown [none]
- GPU: RTX 4060 Laptop (Max-Q), PCI
01:00.0, hybrid with AMD Raphael iGPU (09:00.0)
- Machine: ASUS ROG Strix G713PV (BIOS G713PV.327), Ryzen 9 7845HX, 64 GB RAM
- Session: KDE Plasma 6.7.1, Wayland (kwin_wayland compositing on the dGPU-driven
external output)
- Displays: internal eDP on the AMD iGPU; external HDMI monitor driven by the NVIDIA
dGPU, connected and active at the time of the crash
- Module options:
NVreg_PreserveVideoMemoryAllocations=1,
NVreg_TemporaryFilePath=/var/tmp, NVreg_DynamicPowerManagement=0x00
- nvidia-suspend/resume/hibernate systemd services: enabled
- Hibernate target: 59.6 GiB disk swap partition (zram excluded),
resume=UUID=... on
the kernel cmdline, initramfs rebuilt with resume support; ~14 GiB RAM in use
- Platform sleep: firmware exposes s2idle only (no S3)
Steps to reproduce
- Hybrid mode (dGPU active, external HDMI display connected), Wayland session running.
systemctl hibernate
Expected
Hibernation image written; machine powers off; resume restores the session (or, if
something is unsupported, a clean refusal with no side effects).
Actual
Kernel oops inside the nvidia PM notifier during hibernate entry — before the image
write starts:
BUG: unable to handle page fault for address: 00000000000026b0
Oops: Oops: 0000 [#1] SMP NOPTI
CPU: 13 UID: 0 PID: 123864 Comm: systemd-sleep Tainted: G OE 7.0.13-200.fc44.x86_64 #1 PREEMPT(lazy)
Hardware name: ASUSTeK COMPUTER INC. ROG Strix G713PV_G713PV/G713PV, BIOS G713PV.327 08/23/2023
RIP: 0010:nvEvoDisableVblankSemControl+0x34/0xd0 [nvidia_modeset]
Call Trace:
<TASK>
nv_set_system_power_state.part.0+0x72/0x1b0 [nvidia]
nv_pm_notifier+0x35/0xa0 [nvidia]
notifier_call_chain+0x70/0x110
blocking_notifier_call_chain_robust+0x73/0xf0
pm_notifier_call_chain_robust+0x1d/0x40
hibernate+0x10d/0x190
state_store+0x45/0x60
kernfs_fop_write_iter+0x171/0x220
vfs_write+0x281/0x570
ksys_write+0x7b/0x110
do_syscall_64+0x109/0x6e0
note: systemd-sleep[123864] exited with irqs disabled
The fault address 0x26b0 is a small offset from NULL — this looks like a NULL/stale
device pointer dereferenced while disabling vblank semaphore controls in the hibernate
prepare path.
Aftermath: systemd-hibernate.service: Failed with result 'signal'; the kernel then
logs the RC watchdog indefinitely (~every 8 s):
NVRM: krcWatchdog_IMPL: RC watchdog: GPU is probably locked! Notify Timeout Seconds: 7
The Wayland compositor on the dGPU output never recovers; hard reboot required.
Notes
- Suspend (s2idle) on this configuration has a separate long-standing fragility
(VRAM corruption / Xid 31 on interrupted suspend), so hibernate was the intended
supported sleep path here.
- This was the first hibernate attempt on this install; reproduced immediately.
- Happy to provide
nvidia-bug-report.log.gz, test patches, or try newer drivers.
Possibly related (different symbol/path, also 595.x mobile PM): #1142 (nv_suspend_devices WARNING on suspend). This report is a hard oops in nvEvoDisableVblankSemControl on the hibernate prepare path specifically.
Summary
Attempting to hibernate (
systemctl hibernate) on a hybrid-graphics laptop with thedGPU active crashes in the nvidia PM notifier before the hibernation image is written.
systemd-sleepis killed mid-notifier ("exited with irqs disabled"), hibernation isaborted, and the GPU is left permanently locked (RC watchdog loop) — the Wayland
compositor never recovers and a hard reboot is required. 100% reproducible on first
attempt under the conditions below.
Environment
akmod-nvidia-595.80-1.fc44,kmod-nvidia-7.0.13-200.fc44.x86_64-595.80-1.fc44)7.0.13-200.fc44.x86_64(Fedora 44), PREEMPT(lazy); Secure Boot disabled,lockdown
[none]01:00.0, hybrid with AMD Raphael iGPU (09:00.0)external output)
dGPU, connected and active at the time of the crash
NVreg_PreserveVideoMemoryAllocations=1,NVreg_TemporaryFilePath=/var/tmp,NVreg_DynamicPowerManagement=0x00resume=UUID=...onthe kernel cmdline, initramfs rebuilt with resume support; ~14 GiB RAM in use
Steps to reproduce
systemctl hibernateExpected
Hibernation image written; machine powers off; resume restores the session (or, if
something is unsupported, a clean refusal with no side effects).
Actual
Kernel oops inside the nvidia PM notifier during hibernate entry — before the image
write starts:
The fault address
0x26b0is a small offset from NULL — this looks like a NULL/staledevice pointer dereferenced while disabling vblank semaphore controls in the hibernate
prepare path.
Aftermath:
systemd-hibernate.service: Failed with result 'signal'; the kernel thenlogs the RC watchdog indefinitely (~every 8 s):
The Wayland compositor on the dGPU output never recovers; hard reboot required.
Notes
(VRAM corruption / Xid 31 on interrupted suspend), so hibernate was the intended
supported sleep path here.
nvidia-bug-report.log.gz, test patches, or try newer drivers.Possibly related (different symbol/path, also 595.x mobile PM): #1142 (
nv_suspend_devicesWARNING on suspend). This report is a hard oops innvEvoDisableVblankSemControlon the hibernate prepare path specifically.