Public bug reported:

1) Ubuntu 26.04.1 LTS (Release: 26.04)
2) linux-image-generic-hwe-26.04 7.0.0-31.31
   /proc/version_signature: Ubuntu 7.0.0-31.31-generic 7.0.14
3) Expected: the machine suspends, or aborts suspend cleanly and returns to a
   usable desktop.
4) Instead: intermittent unrecoverable hang. Displays stay black, no response to
   keyboard, SSH or SysRq. A long power-button press is the only recovery.

REGRESSION

  last good  7.0.0-30.30 - 32 suspends over 14 boots, 0 failures
  first bad  7.0.0-31.31 - 20 suspends over  7 boots, 4 failures

7.0.0-31 was installed 2026-09-04; the first boot on it (2026-09-07) is also the
first boot with a failure. Intermittent, roughly 1 in 5 - one boot completed 7
clean suspends on the bad kernel, so this looks like a timing race.

This is not the NVIDIA driver version. It fails on both 610.43.02 and 610.57.04
(upgraded 2026-09-09 11:58, hung again the same day at 18:18). Only the kernel
changed between good and bad.

DEADLOCK

1. nvidia-sleep.sh runs "chvt 63". The VT switch triggers fbcon takeover
   (fbcon_register_existing_fbs -> do_take_over_console) on a kworker, which
   acquires console_lock.
2. User sessions are not frozen at this point: nvidia-kernel-common-610 ships
   
/usr/lib/systemd/system/systemd-suspend.service.d/nvidia-suspend-nofreeze.conf
   setting SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false. Its comment says it exists
   to avoid a VT-switch deadlock with Xorg; this is a Wayland GNOME session, so
   the compositor is simply left running while the GPU is torn down.
3. gnome-shell issues an nvkms MapMemory mid-teardown and sticks permanently in
   kgmmuInvalidateTlb_GM107 (status=0x00000065, retried every 30s forever),
   holding the nvidia-modeset rwsem.
4. The console_lock-holding kworker from step 1 blocks in down_read on that same
   rwsem.
5. Freezing user space fails after 20s, so suspend aborts into
   pm_restore_console -> vt_move_to_console -> console_lock, which is held by
   the blocked kworker. Nothing can break the cycle.

The kernel names the dependency directly:

  Freezing user space processes failed after 20.002 seconds (1 tasks refusing 
to freeze, wq_busy=0)
  fbcon: Taking over console
  INFO: task systemd-sleep:5892 blocked on a semaphore likely last held by task 
kworker/9:0:74

Lock holder:

  INFO: task kworker/9:0:74 blocked for more than 122 seconds.
  Workqueue: events fbcon_register_existing_fbs
   rwsem_down_read_slowpath+0x261/0x5a0
   down_read+0x48/0xd0
   nvkms_ioctl_from_kapi+0xdc/0xf0 [nvidia_modeset]
   GetDynamicDisplayInfo+0x9c/0x190 [nvidia_modeset]
   ? nv_drm_connector_detect+0xe/0x20 [nvidia_drm]
   ? fbcon_init+0x5a0/0x680
   ? do_take_over_console+0x3a/0x60
   ? fbcon_register_existing_fbs+0x55/0xc0

Victim:

  INFO: task systemd-sleep:5892 blocked for more than 368 seconds.
   console_lock+0x2f/0x50
   vt_move_to_console+0x19/0xb0
   pm_restore_console+0x4d/0x70
   enter_state+0x120/0x610
   pm_suspend+0x49/0x90

NOTES

- No Xid errors anywhere in the logs, so the GPU is not faulting.
- Fails in both "deep" and "s2idle" (2026-09-08 08:37 and 08:38, consecutively).
- Kernel is tainted G OE by the out-of-tree NVIDIA module. Reproducing without
  it is not meaningful here, since the deadlock is in the interaction between
  the fbcon/console_lock path and the driver.
- Hardware: RTX 2070 SUPER [10de:1e84], Ryzen 7 2700X, Gigabyte X470 AORUS
  ULTRA GAMING (BIOS F63c). GNOME on Wayland.

WORKAROUNDS (neither is a fix, both avoid the racing path)

- Boot 7.0.0-30-generic.
- Set NVreg_PreserveVideoMemoryAllocations=0, which removes the video-memory
  save / BAR2 teardown that races with the unfrozen compositor.

Attached: suspend-deadlock-debug.log - version.log, lspci -vnvn, lsb_release,
package versions, driver and suspend configuration, per-boot suspend/failure
table across 21 boots, the full kernel log of the hang, and a corroborating
earlier occurrence.

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: linux-image-7.0.0-31-generic 7.0.0-31.31
ProcVersionSignature: Ubuntu 7.0.0-31.31-generic 7.0.14
Uname: Linux 7.0.0-31-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
AudioDevicesInUse:
 USER        PID ACCESS COMMAND
 /dev/snd/controlC1:  flo        4298 F.... wireplumber
 /dev/snd/controlC0:  flo        4298 F.... wireplumber
 /dev/snd/seq:        flo        4281 F.... pipewire
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Wed Sep  9 18:50:06 2026
InstallationDate: Installed on 2026-07-27 (44 days ago)
InstallationMedia: Ubuntu 26.04 "Resolute Raccoon" - Release amd64 (20260423.1)
MachineType: Gigabyte Technology Co., Ltd. X470 AORUS ULTRA GAMING
ProcEnviron:
 LANG=en_US.UTF-8
 PATH=(custom, no user)
 SHELL=/bin/bash
 TERM=xterm-256color
ProcFB: 0 nvidia-drmdrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-7.0.0-31-generic 
root=UUID=a5b22396-9f81-4956-aac3-a7be03bd2892 ro quiet splash 
crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M
RfKill:
 0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 07/20/2022
dmi.bios.release: 5.17
dmi.bios.vendor: American Megatrends International, LLC.
dmi.bios.version: F63c
dmi.board.asset.tag: Default string
dmi.board.name: X470 AORUS ULTRA GAMING-CF
dmi.board.vendor: Gigabyte Technology Co., Ltd.
dmi.board.version: Default string
dmi.chassis.asset.tag: Default string
dmi.chassis.type: 3
dmi.chassis.vendor: Default string
dmi.chassis.version: Default string
dmi.modalias: 
dmi:bvnAmericanMegatrendsInternational,LLC.:bvrF63c:bd07/20/2022:br5.17:svnGigabyteTechnologyCo.,Ltd.:pnX470AORUSULTRAGAMING:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnX470AORUSULTRAGAMING-CF:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:skuDefaultstring:pfaX470MB:
dmi.product.family: X470 MB
dmi.product.name: X470 AORUS ULTRA GAMING
dmi.product.sku: Default string
dmi.product.version: Default string
dmi.sys.vendor: Gigabyte Technology Co., Ltd.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug resolute

** Attachment added: "suspend-deadlock-debug.log"
   
https://bugs.launchpad.net/bugs/2166914/+attachment/5999009/+files/suspend-deadlock-debug.log

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2166914

Title:
  [regression 7.0.0-30 -> 7.0.0-31] Suspend deadlocks in
  pm_restore_console: fbcon takeover holds console_lock while blocked on
  nvidia-modeset rwsem

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2166914/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to