Commit 1dbcf77
drm/amdgpu: Reset CP_VMID_PREEMPT after trailing fence signaled
When MEC executes unmap_queue for mid command buffer preemption, it will
kick the write pointer of the gfx ring, set CP_VMID_PREEMPT to trigger the
preemption and wait for CP_VMID_PREEMPT becomes zero after the preemption
done. There is a race condition that PFP may excute the resetting command
before MEC set CP_VMID_PREEMPT. As a result, hang happens as
CP_VMID_PREEMPT is always 0xffff.
To avoid this, we send resetting CP_VMID_PREEMPT command after the trailing
fence is siganled and update gfx write pointer explicitly.
Signed-off-by: Jiadong Zhu <Jiadong.Zhu@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org # 6.3.x
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/25351 parent 858fd16 commit 1dbcf77
1 file changed
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5369 | 5369 | | |
5370 | 5370 | | |
5371 | 5371 | | |
5372 | | - | |
5373 | | - | |
5374 | | - | |
5375 | | - | |
5376 | 5372 | | |
5377 | 5373 | | |
5378 | 5374 | | |
| |||
5395 | 5391 | | |
5396 | 5392 | | |
5397 | 5393 | | |
| 5394 | + | |
| 5395 | + | |
| 5396 | + | |
| 5397 | + | |
5398 | 5398 | | |
5399 | 5399 | | |
5400 | 5400 | | |
| |||
0 commit comments