Nvidia-open 615.71.09: Xid 79 (GPU fell off the bus) after BAR1 VA-space exhaustion; subsequent s2idle suspend never completes

Environment

GPU NVIDIA GA106M [GeForce RTX 3060 Mobile / Max-Q] 10de:2560, bus 0000:01:00.0, 6144 MiB VRAM, BAR1 8192 MiB, VBIOS 94.06.22.00.47
iGPU Intel TigerLake-H GT1 UHD 8086:9a60 (drives eDP; hybrid / PRIME offload)
Driver nvidia-open (open kernel modules) 615.71.09 / nvidia-utils 615.71.09
Kernel 7.2.7-arch1-1
Distro EndeavourOS (Arch-based), KDE Plasma Wayland (kwin_wayland)
Platform Dell G15 5511, BIOS 1.45.0 (2026-07-23)
Suspend s2idle only — /sys/power/mem_sleep = [s2idle], no S3 exposed
Relevant options nvidia_drm.modeset=1; NVreg_UseKernelSuspendNotifiers=1; NVreg_TemporaryFilePath=/var/tmp

Summary

While running a GPU-heavy OpenGL workload, the dGPU emitted repeated BAR1 mapping
VA-space allocation failures, then lost the PCIe bus (Xid 79). The driver’s recovery
attempt failed (Xid 154, PF FLR). Approximately 50 minutes later a s2idle suspend was
requested; because the GPU was already gone, the suspend never completed. nvidia-modeset
logged Error while waiting for GPU progress every ~5 seconds for over six minutes until
the machine was forcibly rebooted.

Timeline (boot −1, all times local)

Time Event
00:15:01 GPU-heavy OpenGL workload begins on the dGPU (Minecraft via HMCL launcher)
00:20:16–00:21:01 16× NVRM: dmaAllocMapping_GM107: can't alloc VA space for mapping + 10× NV_ERR_NO_MEMORY assertion (mapping_reuse.c:273, kern_bus_gm107.c:3184)
00:22:16 NVRM: Xid (PCI:0000:01:00): 79, pid=380, name=nv_queue, GPU has fallen off the bus.
00:22:16 _kgspLogRpcSanityCheckFailure: sanity check failed 0xf waiting for RPC response from GSP; GSP RPC buffer contains function 78 (DUMP_PROTOBUF_COMPONENT); NV_ERR_GPU_IS_LOST storm
00:22:16 NVRM: Xid (PCI:0000:01:00): 154, GPU recovery action changed from 0x0 (None) to 0x1 (PF FLR)
00:22:17 Rendering process dies SIGABRT (1.3 GB core)
00:22:50 WARNING: nvidia/nv.c:5515 at nvidia_dev_put+0xbd/0xd0 [nvidia], CPU#12: G1 Service/130983 (repeated)
01:12:58 PM: suspend entry (s2idle)
01:13:03 → 01:19:14 75× nvidia-modeset: ERROR: GPU:0: Error while waiting for GPU progress: 0x0000c67d:0 2:0:4048:4040 (~5 s cadence)
~01:19 Forced reboot; no PM: suspend exit was ever logged for this cycle

Key log lines (verbatim)

NVRM: dmaAllocMapping_GM107: can't alloc VA space for mapping.
NVRM: Xid (PCI:0000:01:00): 79, pid=380, name=nv_queue, GPU has fallen off the bus.
NVRM: GPU0 _kgspLogRpcSanityCheckFailure: GPU0 sanity check failed 0xf waiting for RPC response from GSP. Expected function 76 (GSP_RM_CONTROL) sequence 91269 (0x2080a7d7 0x2).
NVRM: Xid (PCI:0000:01:00): 154, GPU recovery action changed from 0x0 (None) to 0x1 (PF FLR)
WARNING: nvidia/nv.c:5515 at nvidia_dev_put+0xbd/0xd0 [nvidia], CPU#12: G1 Service/130983
nvidia-modeset: ERROR: GPU:0: Error while waiting for GPU progress: 0x0000c67d:0 2:0:4048:4040

Expected vs. actual

  • Expected: On GPU loss the driver should either recover the device (FLR) or fail
    gracefully, and a subsequent suspend should either succeed or abort promptly with a
    clear error and a live system.
  • Actual: The GPU is lost permanently, and a later s2idle request hangs indefinitely
    in nvidia-modeset — the system neither suspends nor resumes, and requires a hard power
    cycle. Reported loop continued for 6+ minutes with no timeout or recovery.

Notes / observations

  • Suspend is not intrinsically broken here. The same boot completed 4 successful
    s2idle suspend/resume cycles
    before the GPU loss (5 PM: suspend entry vs. 4
    PM: suspend exit). The failure only follows an already-lost GPU.
  • The bug is intermittent: 1 failure in 5 suspend cycles that day; 0 in the two preceding
    boots.
  • Inference (not proven): the dmaAllocMapping_GM107 VA-space exhaustion precedes the
    bus loss by ~2 minutes and may be the trigger. Note BAR1 reports 8192 MiB (> 6144 MiB
    VRAM), i.e. ReBAR appears enabled, so this appears to be the driver’s mapping-reuse VA
    space rather than the raw aperture size.
  • The GSP sanity-check failure appears after Xid 79 in the log, so GSP looks like a
    casualty rather than the cause.
  • The nv.c:5515 nvidia_dev_put WARNING after device loss suggests a driver-side
    refcount problem on the teardown path.

Related reports