Skip to content

RTX 5070 Ti: Xid 13 SAVE_RESTORE_ADDR_OOB after hibernate/test_resume on 610.57.04 (two kernels) #1322

Description

@MarkoZill

NVIDIA Open GPU Kernel Modules Version

610.57.04 (nvidia-open-dkms 610.57.04-1, matched nvidia-utils 610.57.04-1)

Proprietary driver comparison

Not applicable on this GPU. The affected device is a Blackwell GeForce RTX 5070 Ti, for which the open kernel modules are the supported/required kernel-module flavor. I therefore cannot honestly confirm the functional-bug template's proprietary-driver checkbox.

Operating System and Version

Arch Linux (Omarchy userspace), x86_64.

Kernel releases tested

  • 7.1.9-arch1-2
  • 6.18.46-1-lts

Both are stable, non-RC Arch kernels. The LTS reproducer was captured with:

Linux 6.18.46-1-lts #1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux

Hardware

  • GPU: NVIDIA GeForce RTX 5070 Ti (Blackwell)
  • CPU/platform: AMD Ryzen 9 5950X, ASUS ROG Crosshair VIII Hero (Wi-Fi)
  • Four-display Wayland/Hyprland desktop

Description

Restoring a hibernation image corrupts restored GPU contexts with deterministic Xid 13 errors. The kernel successfully creates/restores the image and userspace processes initially survive, but the NVIDIA driver immediately reports Shader Program Header errors followed by SAVE_RESTORE_ADDR_OOB across multiple GPCs. GPU clients then fail and Hyprland eventually crashes or restarts into locked safe mode.

The same fault reproduces with the kernel's test_resume mode on two different stable kernels. Therefore a real S4 power cycle, firmware restart, and E820 transition are not required to trigger it.

This is not merely a compositor startup problem: in the LTS run the pre-existing canary process remained alive after same-boot restore, while the kernel logged Xid faults against Quickshell, Vivaldi, and then Hyprland.

Relevant module parameters:

PreserveVideoMemoryAllocations: 0
UseKernelSuspendNotifiers: 1

The package-provided nvidia-suspend.service, nvidia-hibernate.service, and nvidia-resume.service are disabled, using the notifier path for the open modules.

Representative errors:

NVRM: Xid ...: 13, Graphics Exception: Shader Program Header 11 Error
NVRM: Xid ...: 13, Graphics Exception: Shader Program Header 18 Error
NVRM: Xid ...: 13, Graphics Exception on GPC 2: SAVE_RESTORE_ADDR_OOB
NVRM: Xid ...: 13, Graphics Exception on GPC 3: SAVE_RESTORE_ADDR_OOB
NVRM: Xid ...: 13, Graphics Exception on GPC 4: SAVE_RESTORE_ADDR_OOB
NVRM: Xid ...: 13, Graphics Exception on GPC 5: SAVE_RESTORE_ADDR_OOB
NVRM: Xid ...: 13, pid=..., name=Hyprland, Graphics Exception: channel ...

Steps to reproduce

  1. Boot a clean Wayland/Hyprland session with the RTX 5070 Ti and NVIDIA open modules 610.57.04.
  2. Verify NVreg_PreserveVideoMemoryAllocations=0 and NVreg_UseKernelSuspendNotifiers=1.
  3. Ensure the NVIDIA procfs sleep units are disabled.
  4. Save all work and close games/UMU processes.
  5. Open a terminal canary and record its PID.
  6. Select test_resume as the hibernation mode and request hibernation through systemd.
  7. The system returns in the same boot after roughly 10–12 seconds and the canary PID initially survives.
  8. Immediately inspect the kernel journal: Xid 13 / Shader Program Header / SAVE_RESTORE_ADDR_OOB errors appear.
  9. Hyprland subsequently crashes or enters locked safe mode; graphical session continuity is lost. Recovering requires restarting the display-manager session.

Incidence

Always in the controlled tests performed with this driver/configuration:

  • Real S4 from a stable E820 boot on kernel 7.1.9: image restored, then identical Xid class and graphical-session failure.
  • test_resume on kernel 7.1.9: reproduced.
  • test_resume on Linux LTS 6.18.46: reproduced.

Clean boots before each test show no Xid or display errors. Restarting only the display-manager session restores all displays and no new GPU errors occur afterward.

Additional negative A/B results

  • Linux LTS 6.18.46 does not change the outcome.
  • The exact failure occurs without a real S4/firmware power cycle.
  • An earlier proprietary-style PreserveVideoMemoryAllocations=1 plus procfs sleep-unit experiment removed a different pci_pm_freeze -5 failure but caused a hard reset during early restore. That path was rejected and is not the current configuration.
  • Architecture/E820 safety checks were not bypassed.

nvidia-bug-report

A public redacted report captured after reproducing the issue is available here:

https://gist.github.com/MarkoZill/7aa921c647bd64beeb642986cb6ad325

Private usernames, hostname, network addresses, UUIDs, serials, emails, and secret-like lines were removed from the public copy. The original unredacted nvidia-bug-report.log.gz is retained privately and can be supplied to NVIDIA through a secure channel if requested.

Expected behavior

The hibernation image should restore without corrupting GPU contexts, and the existing graphical session and clients should remain usable.

Actual behavior

The image/userspace initially restore, then NVIDIA reports deterministic Xid 13 Shader Program Header and SAVE_RESTORE_ADDR_OOB faults; GPU clients fail and the compositor session is lost.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions