[Bug Report] Ubuntu 26.04: Suspend/Resume Black Screen on ASUS Vivobook M6500QF (AMD Cezanne + NVIDIA RTX 2050 Mobile, Driver 595.99.02, Kernel 7.0)
Juerg Haefliger
juerg.haefliger at canonical.com
Tue Oct 13 07:17:28 UTC 2026
On Sun, 11 Oct 2026 11:58:40 +0530
Nitin Chandra <nitinchandra.dev at gmail.com> wrote:
> Black screen on suspend/resume on ASUS Vivobook M6500QF (AMD Cezanne + RTX
> 2050
> │ Mobile, driver 595.99.02, kernel 7.0): PCIe D3hot->D0 link failure and
> nvidia-
> │ sleep.sh VT63 entrapment
>
> System Information:
>
> - Laptop: ASUS Vivobook M6500QF_M6500QF (BIOS M6500QF.303)
>
> - OS: Ubuntu 26.04.1 LTS (x86_64)
>
> - Kernel: 7.0.0-38-generic
>
> - Display Session: Wayland (GNOME Shell)
>
> - Integrated GPU: AMD Cezanne Radeon Vega Series [1002:1638] (rev c5),
> amdgpu driver
> (eDP-1)
>
> - Discrete GPU: NVIDIA GA107 [GeForce RTX 2050 Mobile] [10de:25ad] (rev
> a1),
> Subsystem 1043:1ab3
>
> - Upstream PCIe Bridge: AMD Renoir/Cezanne PCIe GPP Bridge [1022:1633]
> @ 0000:00:01.
> 1
>
> - Driver: nvidia-driver-595-open (595.99.02-0ubuntu0.26.04.1)
>
> - Sleep Mode: [s2idle]
>
>
>
> Description of the problem:
>
> On Ubuntu 26.04 with kernel 7.0.0-38 and NVIDIA driver 595.99.02,
> suspending the
> system results in an unrecoverable black screen upon wake. Investigation
> of journalctl
> and kernel traces reveals two distinct issues:
>
>
>
> 1. Low-level PCIe Power State Failure:
>
> Upon resume from s2idle, the kernel PCI subsystem attempts to
> transition the NVIDIA
> GPU from D3hot to D0:
>
> "kernel: nvidia 0000:01:00.0: Unable to change power state from D3hot
> to D0, device
> inaccessible"
>
> The upstream AMD root port (0000:00:01.1) fails link training or drops
> power to the
> slot, causing config reads to return 0xFFFF. The AMD iGPU resumes cleanly
> ("SMU is
> resumed successfully"), and the rest of userspace (NetworkManager,
> chrony, systemd)
> remains alive in the background. The system is NOT frozen.
>
>
>
> 2. Driver / Userspace Deadlock & VT63 Entrapment:
>
> - Before sleep, /usr/bin/nvidia-sleep.sh forces a virtual terminal
> switch: "chvt 63".
> - On resume, /usr/lib/systemd/system-sleep/nvidia executes:
>
> "/usr/bin/nvidia-sleep.sh resume" -> "echo resume >
> /proc/driver/nvidia/suspend"
> - In the kernel, nv_set_system_power_state() acquires
> down_write(&nv_system_pm_lock).
> - Because the PCIe link is inaccessible, BAR0 MMIO reads return 0x0,
> entering an
> infinite loop:
>
> "kernel: NVRM: kbusVerifyBar2_GM107: MMUTest BAR0 window offset
> 0x70e000 returned
> garbage 0x0"
>
> - Because this kernel call never returns, line 57 of nvidia-sleep.sh
> ("RestoreVT" /
> chvt) is never executed. The display remains permanently trapped on empty
> VT 63.
> - After 180 seconds, systemd-suspend attempts to kill nvidia-sleep.sh
> with SIGKILL,
> but it cannot exit because it is stuck in kernel space holding
> nv_system_pm_lock.
> Other processes touching NVIDIA (e.g., nv_queue, GNOME Shell) block on
> the rw-
> semaphore:
>
> "kernel: INFO: task nv_queue:1044 <writer> blocked on an rw-semaphore
> likely owned
> by task nvidia-sleep.sh:15431 <writer>"
>
>
>
> 3. Incompatibility with direct PM / rtcwake:
>
> Ubuntu's default /etc/modprobe.d/nvidia-graphics-drivers-kms.conf
> configures:
> options nvidia NVreg_PreserveVideoMemoryAllocations=1
>
> without enabling NVreg_UseKernelSuspendNotifiers=1.
>
> Direct kernel suspends or tests (e.g. `rtcwake -m mem`) bypass systemd
> services and
> immediately abort with error -5 (-EIO):
> "NVRM: GPU 0000:01:00.0: PreserveVideoMemoryAllocations module
> parameter is set.
> System Power Management attempted without driver procfs suspend
> interface."
> "nvidia 0000:01:00.0: PM: pci_pm_suspend(): nv_pmops_suspend [nvidia]
> returns -5"
The mailing list is not meant for reporting bugs. Please report this on
Launchpad. On the machine running the affected kernel, run:
$ ubuntu-bug linux
Thanks
...Juerg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20261013/bcd8d4c8/attachment.sig>
More information about the kernel-team
mailing list