Hello,
I am hitting a reproducible full GPU loss on VCN 4.0.0 during hardware
video decode, and I would like to ask whether the ring reset path is
missing the same guard that was added to the suspend path for VCN 1.0 in
2022.
Hardware and software
---------------------
Machine: TUXEDO InfinityBook Pro AMD Gen9
SoC: AMD Ryzen 7 8845HS w/ Radeon 780M (Phoenix3, 1002:1900 rev c5)
IP block: vcn_v4_0_0
VCN fw: ENC 1.19 DEC 7 VEP 0 Revision 0 (linux-firmware 20240318)
Kernels: 6.17.0-121035-tuxedo, 6.17.0-122035-tuxedo, 7.0.0-28-generic
Distro: Ubuntu 24.04
Userspace: Mesa 25.0.7 radeonsi VA-API, Firefox 152, GNOME/Wayland
amdgpu: pg_mask=0xFFFFFFFF, reset_method=-1 (auto), gpu_recovery=-1
Symptom
-------
During hardware-accelerated video decode in Firefox the unified VCN ring
stops retiring work, the ring reset fails, the escalated full-adapter
reset fails to resume the VCN block, and the driver gives up.
The display dies and the machine has to be powered off with the power
button.
This has occurred 7 times over roughly two months, across three kernels.
It is not tied to a particular site or codec.
Confirmed sources include YouTube, ZDF Mediathek and a third streaming
site, and two occurrences had no video navigation at all, most likely a
background tab.
The submitting process is always Firefox's RDD (decode) process.
Log
---
amdgpu 0000:65:00.0: ring vcn_unified_0 timeout, signaled seq=13423,
emitted seq=13425
amdgpu 0000:65:00.0: Process RDD Process pid 7866 thread browser 4 :cs0
pid 23438
amdgpu 0000:65:00.0: Starting vcn_unified_0 ring reset
amdgpu 0000:65:00.0: Register(0) [regUVD_POWER_STATUS] failed to reach
value 0x00000001 != 0x00000002
amdgpu 0000:65:00.0: Register(0) [regUVD_RB_RPTR] failed to reach value
0x00000200 != 0x00000180
amdgpu 0000:65:00.0: Register(0) [regUVD_POWER_STATUS] failed to reach
value 0x00000001 != 0x00000002
amdgpu 0000:65:00.0: Ring vcn_unified_0 reset failed
amdgpu 0000:65:00.0: GPU reset begin!. Source: 1
amdgpu 0000:65:00.0: MODE2 reset
amdgpu 0000:65:00.0: GPU reset succeeded, trying to resume
amdgpu 0000:65:00.0: SMU is resuming...
amdgpu 0000:65:00.0: SMU is resumed successfully!
amdgpu 0000:65:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] *ERROR* ring
vcn_unified_0 test failed (-110)
amdgpu 0000:65:00.0: resume of IP block <vcn_v4_0> failed -110
amdgpu 0000:65:00.0: GPU reset end with ret = -110
amdgpu 0000:65:00.0: GPU Recovery Failed: -110
amdgpu 0000:65:00.0: [drm] *ERROR* [CRTC:364:crtc-0] hw_done or
flip_done timed out
Across the single failing boot, regUVD_POWER_STATUS misses its expected
value eight times, always reading 0x2 where the driver requires 0x1:
8x regUVD_POWER_STATUS expected 0x00000001 read 0x00000002
4x regUVD_RB_RPTR expected 0x00000040 read 0x00000000
1x regUVD_RB_RPTR expected 0x00000200 read 0x00000180
Thanks,
Lukas Heumos