[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)
Nitin Chandra
nitinchandra.dev at gmail.com
Sun Oct 11 06:28:40 UTC 2026
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"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20261011/644e714f/attachment-0001.html>
More information about the kernel-team
mailing list