NVIDIA / NVIDIA/open-gpu-kernel-modules
595.80 (open): kernel oops in nvEvoDisableVblankSemControl on hibernate entry — NULL page fault, GPU left hard-locked (krcWatchdog loop)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 17.4k
- Forks
- 1.9k
- PR merge metrics
- No merged PRs in 30d
Description
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reported hibernate call chain: nv_pm_notifier, nv_set_system_power_state, and nvEvoDisableVblankSemControl in the nvidia and nvidia_modeset modules. Reproduce with the stated hybrid-graphics, Wayland, and external-HDMI setup, then trace the failing notifier path and compare it with issue #1142. Done means hibernate either completes or refuses cleanly without an oops, GPU lock, or compositor failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux
- Domain
- computer-graphics, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100