AMD Radeon R5 230 (TeraScale 2) locks up with frequent window size changes
With an AMD Radeon R5 230, whilst using KDE (browsing the web, using the terminal), the desktop interface would freeze occasionally, then goes to a blank screen, recovering in about 10 seconds, with the cursor still working but not responding to any clicking. The interface would not recover itself.
Key component versions are as follows:
- Linux Kernel 6.11-rc6 (also observable on 6.6 and 6.10)
- Mesa 24.2.1
- xf86-video-ati 22.0.0 (also observable with modesettings)
While investigating this issue, I have came up with the following reproducer:
- Open Firefox and Thunderbird, tiling the two windows side-by-side.
- Drag to automatically resize both windows, rapidly.
- The interface freezes in about 5 - 10 seconds.
The dmesg at this point indicates that the GPU had reset successfully (and agrees with the 10-second delay between freezing-blanking-recovering:
[ 94.409754] radeon 0000:05:00.0: ring 0 stalled for more than 10080msec
[ 94.416359] radeon 0000:05:00.0: GPU lockup (current fence id 0x00000000000027a4 last fence id 0x00000000000027b5 on ring 0)
[ 94.897333] radeon 0000:05:00.0: Saved 535 dwords of commands on ring 0.
[ 94.904019] radeon 0000:05:00.0: GPU softreset: 0x0000000C
[ 94.909474] radeon 0000:05:00.0: GRBM_STATUS = 0xA0003828
[ 94.916223] radeon 0000:05:00.0: GRBM_STATUS_SE0 = 0x00000007
[ 94.922974] radeon 0000:05:00.0: GRBM_STATUS_SE1 = 0x00000007
[ 94.929722] radeon 0000:05:00.0: SRBM_STATUS = 0x20000AC0
[ 94.936471] radeon 0000:05:00.0: SRBM_STATUS2 = 0x00000000
[ 94.943222] radeon 0000:05:00.0: R_008674_CP_STALLED_STAT1 = 0x00000000
[ 94.949973] radeon 0000:05:00.0: R_008678_CP_STALLED_STAT2 = 0x00010002
[ 94.956722] radeon 0000:05:00.0: R_00867C_CP_BUSY_STAT = 0x00020182
[ 94.963470] radeon 0000:05:00.0: R_008680_CP_STAT = 0x80038647
[ 94.970220] radeon 0000:05:00.0: R_00D034_DMA_STATUS_REG = 0x44483146
[ 94.989163] radeon 0000:05:00.0: GRBM_SOFT_RESET=0x00004001
[ 94.994755] radeon 0000:05:00.0: SRBM_SOFT_RESET=0x00100100
[ 95.001453] radeon 0000:05:00.0: GRBM_STATUS = 0x00003828
[ 95.008201] radeon 0000:05:00.0: GRBM_STATUS_SE0 = 0x00000007
[ 95.014950] radeon 0000:05:00.0: GRBM_STATUS_SE1 = 0x00000007
[ 95.021709] radeon 0000:05:00.0: SRBM_STATUS = 0x200000C0
[ 95.028460] radeon 0000:05:00.0: SRBM_STATUS2 = 0x00000000
[ 95.035210] radeon 0000:05:00.0: R_008674_CP_STALLED_STAT1 = 0x00000000
[ 95.041959] radeon 0000:05:00.0: R_008678_CP_STALLED_STAT2 = 0x00000000
[ 95.048708] radeon 0000:05:00.0: R_00867C_CP_BUSY_STAT = 0x00000000
[ 95.055456] radeon 0000:05:00.0: R_008680_CP_STAT = 0x00000000
[ 95.062206] radeon 0000:05:00.0: R_00D034_DMA_STATUS_REG = 0x44C83D57
[ 95.068977] radeon 0000:05:00.0: GPU reset succeeded, trying to resume
[ 95.085590] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[ 95.145694] [drm] PCIE GART of 1024M enabled (table at 0x0000000000164000).
[ 95.152779] radeon 0000:05:00.0: WB enabled
[ 95.156939] radeon 0000:05:00.0: fence driver on ring 0 use gpu addr 0x0000000080000c00
[ 95.164899] radeon 0000:05:00.0: fence driver on ring 3 use gpu addr 0x0000000080000c0c
[ 95.195944] radeon 0000:05:00.0: fence driver on ring 5 use gpu addr 0x0000000000072118
[ 95.220819] [drm] ring test on 0 succeeded in 1 usecs
[ 95.225852] [drm] ring test on 3 succeeded in 8 usecs
[ 95.408040] [drm] ring test on 5 succeeded in 2 usecs
[ 95.413072] [drm] UVD initialized successfully.
[ 95.619553] [drm] ib test on ring 0 succeeded in 0 usecs
[ 95.624930] [drm] ib test on ring 3 succeeded in 0 usecs
[ 95.781719] [drm] ib test on ring 5 succeeded
I have attached the full dmesg output below.