Skip to content

595.80 (open): kernel oops in nvEvoDisableVblankSemControl on hibernate entry — NULL page fault, GPU left hard-locked (krcWatchdog loop) #1226

Description

@SithSense

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

  1. Hybrid mode (dGPU active, external HDMI display connected), Wayland session running.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions