#1150733 xserver-xorg-video-radeon: HD 5450 as secondary GPU stops updating with glamor; radeon GPU lockup / stalled page flip

Package:
xserver-xorg-video-radeon
Source:
xserver-xorg-video-radeon
Description:
X.Org X server -- AMD/ATI Radeon display driver
Submitter:
KURASAWA Nozomu (nabetaro)
Date:
2026-10-13 01:13:03 UTC
Severity:
normal
#1150733#5
Date:
2026-10-13 01:00:24 UTC
From:
To:
Dear Maintainer,

Since a recent upgrade on sid, the display connected to my Radeon HD 5450
intermittently stops redrawing. The content is refreshed again only when I
show a particular application on another display. Chrome windows also get
visually corrupted over time. Rebooting does not help.

== Setup ==
- Debian sid, Xorg + Cinnamon (non-root X, log in ~/.local/share/xorg/)
- Primary GPU: Intel UHD Graphics 730 (ADL-S GT1), i915, modesetting DDX
- Secondary GPU: AMD Radeon HD 5450 (CEDAR, 1002:68f9), radeon kernel driver
  + xserver-xorg-video-radeon DDX, used as a PRIME output (RADEON(G0)) with
  one HDMI monitor (Acer KA240H)
- Kernel: 7.2.9+deb14-amd64
- Kernel cmdline: radeon.dpm=0 radeon.pcie_gen2=0
- The out-of-tree evdi module (DisplayLink virtual display) is loaded, so
  the kernel is tainted (G OE). I have not tested without evdi.
- Default behaviour: glamor acceleration, "TearFree property default: auto"

== Symptoms (before the workaround) ==
1. About 1.5 hours after boot (Oct 6 20:49): GPU lockup on ring 0, soft reset
   succeeded; a second lockup 11 s later ("fence wait failed (-35)",
   "failed testing IB on GFX ring (-35)"), then the reset succeeded again.
2. Oct 6 21:50: WARNING at drivers/gpu/drm/ttm/ttm_bo.c:256 in
   ttm_bo_release (Xorg, via drm_gem_dmabuf_release).
3. Oct 8 11:42: hang in workqueue radeon-crtc:
     radeon_flip_work_func -> radeon_fence_wait ->
radeon_fence_wait_seq_timeout
   This matches the moment the Radeon-side display stopped updating.
4. Oct 8 12:13 (after a reboot, during shutdown): the same hang, reported as
   a hung task. Full call trace below.
5. Xorg.0.log: (EE) RADEON(G0): drmmode_do_crtc_dpms cannot get last vblank
   counter
6. Occasionally: "HDMI-A-4: probed a monitor but no|invalid EDID"
   (may be cable/monitor related)

== Workaround ==
With the following OutputClass, no stall, GPU lockup or stalled page flip has
occurred in about 4.8 days of continuous uptime (as of 2026-10-13). Before
the change, lockups appeared within ~1.5 hours and a stalled flip within ~2
days. "journalctl -k -b | grep -iE 'lockup|stalled|radeon_flip|ttm_bo'" is
empty for this boot.

  Section "OutputClass"
      Identifier "Radeon-custom"
      MatchDriver "radeon"
      Driver "radeon"
      Option "AccelMethod" "none"
      Option "TearFree" "off"
      Option "EnablePageFlip" "off"
  EndSection

Xorg.0.log confirms the options are applied to RADEON(G0) and that
"Use GLAMOR acceleration" no longer appears for the Radeon.
I changed the three options at the same time, so I cannot yet say which one
is responsible.

== Not yet tested ==
- Older kernel / older mesa / older xserver
- glamor with TearFree off, or AccelMethod exa
- Without the evdi module

== Note on logs ==
The journal of the affected boot (Oct 6 19:18 - Oct 8 11:53) is no longer
available (only the last 7 lines of the shutdown remain). The excerpts below
are from "journalctl -k -b | grep -iE 'radeon|drm|gpu|lockup|ring'" that I
captured while that boot was running. The journal is in Japanese locale
(10月 = October). Host name is as logged. The module list of the WARNING
line is trimmed. The full call trace of the Oct 8 12:13 hang is also
attached as boot20261008.log.

== Attached excerpts (Oct 6 - Oct 8, kernel 7.2.9+deb14-amd64) ==

10月 06 19:17:28 3ycnpy3 kernel: Command line:
BOOT_IMAGE=/boot/vmlinuz-7.2.9+deb14-amd64 root=UUID=... ro quiet radeon.dpm=0
radeon.pcie_gen2=0
10月 06 19:17:28 3ycnpy3 kernel: [drm] radeon kernel modesetting enabled.
10月 06 19:17:28 3ycnpy3 kernel: [drm] initializing kernel modesetting (CEDAR
0x1002:0x68F9 0x1458:0x21E2 0x00).
10月 06 19:17:28 3ycnpy3 kernel: i915 0000:00:02.0: [drm] Found alderlake_s
(device ID 4682) integrated display version 12.00 stepping C0
10月 06 19:17:28 3ycnpy3 kernel: [drm] Initialized radeon 2.51.0 for
0000:01:00.0 on minor 0
10月 06 19:17:28 3ycnpy3 kernel: radeon 0000:01:00.0: [drm] fb1: radeondrmfb
frame buffer device
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0: ring 0 stalled for more
than 10396msec
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0: GPU lockup (current fence
id 0x00000000000267ba last fence id 0x00000000000267c0 on ring 0)
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0: Saved 194 dwords of
commands on ring 0.
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0: GPU softreset: 0x0000000D
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0:   GRBM_STATUS
= 0xE7730828
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0:   GRBM_STATUS_SE0
= 0xFC000001
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0:   GRBM_STATUS_SE1
= 0x00000007
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0:   SRBM_STATUS
= 0x200000C0
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0:
R_008678_CP_STALLED_STAT2 = 0x00010800
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0:   R_00867C_CP_BUSY_STAT
= 0x00028006
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0:   R_008680_CP_STAT
= 0x80038647
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0:   R_00D034_DMA_STATUS_REG
= 0x44483106
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0: GRBM_SOFT_RESET=0x00007F6B
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0: SRBM_SOFT_RESET=0x00100100
10月 06 20:49:51 3ycnpy3 kernel: radeon 0000:01:00.0: GPU reset succeeded,
trying to resume
10月 06 20:50:02 3ycnpy3 kernel: radeon 0000:01:00.0: ring 0 stalled for more
than 10508msec
10月 06 20:50:02 3ycnpy3 kernel: radeon 0000:01:00.0: GPU lockup (current fence
id 0x00000000000267bd last fence id 0x00000000000267c0 on ring 0)
10月 06 20:50:02 3ycnpy3 kernel: [drm:r600_ib_test [radeon]] *ERROR* radeon:
fence wait failed (-35).
10月 06 20:50:02 3ycnpy3 kernel: [drm:radeon_ib_ring_tests [radeon]] *ERROR*
radeon: failed testing IB on GFX ring (-35).
10月 06 20:50:02 3ycnpy3 kernel: radeon 0000:01:00.0: GPU softreset: 0x00000009
10月 06 20:50:02 3ycnpy3 kernel: radeon 0000:01:00.0: GPU reset succeeded,
trying to resume
10月 06 20:50:03 3ycnpy3 kernel: [drm] ib test on ring 0 succeeded in 0 usecs
10月 06 21:50:22 3ycnpy3 kernel: WARNING: drivers/gpu/drm/ttm/ttm_bo.c:256 at
ttm_bo_release+0x2c3/0x330 [ttm], CPU#12: Xorg/4140
10月 06 21:50:22 3ycnpy3 kernel:  drm_gem_dmabuf_release+0x49/0x70 [drm]
10月 07 09:23:24 3ycnpy3 kernel: [drm] Initialized evdi 1.15.1 for evdi.0 on
minor 2
10月 07 09:23:27 3ycnpy3 kernel: [drm:radeon_dvi_detect [radeon]] *ERROR*
HDMI-A-4: probed a monitor but no|invalid EDID
10月 07 17:47:08 3ycnpy3 kernel: [drm:radeon_dvi_detect [radeon]] *ERROR*
HDMI-A-4: probed a monitor but no|invalid EDID
10月 08 11:42:04 3ycnpy3 kernel: Workqueue: radeon-crtc radeon_flip_work_func
[radeon]
10月 08 11:42:04 3ycnpy3 kernel:
radeon_fence_wait_seq_timeout.part.0+0x331/0x380 [radeon]
10月 08 11:42:04 3ycnpy3 kernel:  radeon_fence_wait_timeout+0x106/0x170 [radeon]
10月 08 11:42:04 3ycnpy3 kernel:  radeon_fence_wait+0x1c/0x30 [radeon]
10月 08 11:42:04 3ycnpy3 kernel:  radeon_flip_work_func+0x20b/0x280 [radeon]

== Full call trace of the Oct 8 12:13 hang (next boot, same stack) ==

10月 08 12:13:19 3ycnpy3 kernel: INFO: task kworker/6:1H:384 blocked for more
than 120 seconds.
10月 08 12:13:19 3ycnpy3 kernel:       Tainted: G           OE
7.2.9+deb14-amd64 #1 Debian 7.2.9-1
10月 08 12:13:19 3ycnpy3 kernel: task:kworker/6:1H    state:D stack:0
pid:384   tgid:384   ppid:2      task_flags:0x4208060 flags:0x00080000
10月 08 12:13:19 3ycnpy3 kernel: Workqueue: radeon-crtc radeon_flip_work_func
[radeon]
10月 08 12:13:19 3ycnpy3 kernel: Call Trace:
10月 08 12:13:19 3ycnpy3 kernel:  <TASK>
10月 08 12:13:19 3ycnpy3 kernel:  __schedule+0x4c5/0x1070
10月 08 12:13:19 3ycnpy3 kernel:  schedule+0x27/0xa0
10月 08 12:13:19 3ycnpy3 kernel:  schedule_timeout+0xdc/0x120
10月 08 12:13:19 3ycnpy3 kernel:
radeon_fence_wait_seq_timeout.part.0+0x331/0x380 [radeon]
10月 08 12:13:19 3ycnpy3 kernel:  radeon_fence_wait_timeout+0x106/0x170 [radeon]
10月 08 12:13:19 3ycnpy3 kernel:  radeon_fence_wait+0x1c/0x30 [radeon]
10月 08 12:13:19 3ycnpy3 kernel:  radeon_flip_work_func+0x20b/0x280 [radeon]
10月 08 12:13:19 3ycnpy3 kernel:  process_one_work+0x19e/0x370
10月 08 12:13:19 3ycnpy3 kernel:  worker_thread+0x1a6/0x310
10月 08 12:13:19 3ycnpy3 kernel:  kthread+0xe4/0x120
10月 08 12:13:19 3ycnpy3 kernel:  ret_from_fork+0x2b1/0x340
10月 08 12:13:19 3ycnpy3 kernel:  ret_from_fork_asm+0x1a/0x30
10月 08 12:13:19 3ycnpy3 kernel:  </TASK>

The radeon_flip_work_func fence wait and the GPU lockups are kernel-side
messages, so please reassign to src:linux if that is more appropriate.
Please let me know what additional information would help.