diff options
| author | Jiadong Zhu <[email protected]> | 2023-05-24 03:42:19 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2023-06-09 15:02:05 +0000 |
| commit | b7941e2fef13baabd3eade31601e70adf729e887 (patch) | |
| tree | b80bc3043b0bdc624ccddb5918e6d7adfae35666 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
| parent | drm/amd/display: remove unused definition (diff) | |
| download | kernel-b7941e2fef13baabd3eade31601e70adf729e887.tar.gz kernel-b7941e2fef13baabd3eade31601e70adf729e887.zip | |
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 <[email protected]>
Acked-by: Alex Deucher <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
0 files changed, 0 insertions, 0 deletions
