Soft Lockup when waking displays from power save on 5.18+ [drm:dcn20_wait_for_blank_complete [amdgpu]] *ERROR* DC: failed to blank crtc!
Brief summary of the problem:
Sometimes, when attempting to wake monitors from sleep to unlock the system, a soft lockup in the kernel is triggered, freezing xorg and rendering the system unusable. REISUB is still able to reboot the system.
The screens do initially light, but then drop back to sleep after a second or two.
I have not reproduced this issue on 5.17.x, only 5.18.x.
Hardware description:
- CPU: Ryzen 9 3900X
- GPU: 0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M] [1002:73df] (rev c1)
- System Memory: 64GB DDR4-3600
- Display(s): LG 27UD58-B, LG 32UK50T-W, Valve Index
- Type of Display Connection: All Displayport
System information:
- Distro name and Version: Debian Testing
- Kernel version: Linux stephen-Desktop 5.18.1 #86 SMP PREEMPT_DYNAMIC Sat Jun 4 11:18:48 PDT 2022 x86_64 GNU/Linux
- Custom kernel: Mainline w/ Debian 5.17 Config + 1000hz timer + olddefconfig
- Mesa: 22.1.0
How to reproduce the issue:
Let the screens time out and enter energy saving mode/sleep, then move the mouse/type on the keyboard to wake them.
Attached files:
Log files (for system lockups / game freezes / crashes)
Included for search-ability:
Jun 06 21:20:31 stephen-Desktop kernel: [drm:dcn20_wait_for_blank_complete [amdgpu]] *ERROR* DC: failed to blank crtc!
Jun 06 21:20:31 stephen-Desktop kernel: [drm] REG_WAIT timeout 1us * 100000 tries - optc1_wait_for_state line:819
Jun 06 21:20:31 stephen-Desktop kernel: [drm] REG_WAIT timeout 1us * 100000 tries - optc1_wait_for_state line:819
Jun 06 21:20:32 stephen-Desktop kernel: ------------[ cut here ]------------
Jun 06 21:20:32 stephen-Desktop kernel: WARNING: CPU: 19 PID: 227634 at drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c:1192 dc_commit_state+0xac2/0xb10 [amdgpu]
-snip-
Jun 06 21:20:32 stephen-Desktop kernel: Workqueue: events_highpri dm_irq_work_func [amdgpu]
Jun 06 21:20:32 stephen-Desktop kernel: RIP: 0010:dc_commit_state+0xac2/0xb10 [amdgpu]
-snip-
Jun 06 21:20:32 stephen-Desktop kernel: Call Trace:
Jun 06 21:20:32 stephen-Desktop kernel: <TASK>
Jun 06 21:20:32 stephen-Desktop kernel: amdgpu_dm_atomic_commit_tail+0x59d/0x2660 [amdgpu]
Jun 06 21:20:32 stephen-Desktop kernel: ? dcn30_internal_validate_bw+0x83f/0xa60 [amdgpu]
Jun 06 21:20:32 stephen-Desktop kernel: ? dcn30_validate_bandwidth+0xf7/0x2b0 [amdgpu]
Jun 06 21:20:32 stephen-Desktop kernel: ? kfree+0xc9/0x2e0
-snip-
Jun 06 21:20:32 stephen-Desktop kernel: [drm] REG_WAIT timeout 1us * 100000 tries - mpc2_assert_idle_mpcc line:478
Jun 06 21:20:33 stephen-Desktop kernel: [drm] REG_WAIT timeout 1us * 100000 tries - mpc2_assert_idle_mpcc line:478
Jun 06 21:20:33 stephen-Desktop kernel: [drm] REG_WAIT timeout 1us * 100000 tries - optc1_wait_for_state line:819
Jun 06 21:20:59 stephen-Desktop kernel: watchdog: BUG: soft lockup - CPU#12 stuck for 26s! [Xorg:228502]
-snip-
Jun 06 21:20:59 stephen-Desktop kernel: RIP: 0010:delay_halt_mwaitx+0x39/0x40
-snip-
Jun 06 21:20:59 stephen-Desktop kernel: Call Trace:
Jun 06 21:20:59 stephen-Desktop kernel: <TASK>
Jun 06 21:20:59 stephen-Desktop kernel: delay_halt+0x3b/0x60
Jun 06 21:20:59 stephen-Desktop kernel: dcn20_post_unlock_program_front_end+0x103/0x2e0 [amdgpu]
Jun 06 21:20:59 stephen-Desktop kernel: dc_commit_state+0x419/0xb10 [amdgpu]
Jun 06 21:20:59 stephen-Desktop kernel: amdgpu_dm_atomic_commit_tail+0x59d/0x2660 [amdgpu]
Full log: screen_wakeup_crash_decoded.txt