[PATCH] drm/amdgpu: Fix uvd ib test timeout when use pre-allocated BO
Christian König
ckoenig.leichtzumerken at gmail.com
Thu Sep 16 06:28:30 UTC 2021
Am 16.09.21 um 08:19 schrieb xinhui pan:
> Now we use same BO for create/destroy msg. So destroy will wait for the
> fence returned from create to be signaled. The default timeout value in
> destroy is 10ms which is too short.
>
> Lets wait both fences with the specific timeout.
>
> Signed-off-by: xinhui pan <xinhui.pan at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> index b6e2abf26e18..8a26459bd80b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
> @@ -1336,10 +1336,17 @@ int amdgpu_uvd_ring_test_ib(struct amdgpu_ring *ring, long timeout)
> struct dma_fence *fence;
> long r;
>
> - r = amdgpu_uvd_get_create_msg(ring, 1, NULL);
> + r = amdgpu_uvd_get_create_msg(ring, 1, &fence);
> if (r)
> goto error;
>
> + r = dma_fence_wait_timeout(fence, false, timeout);
> + dma_fence_put(fence);
> + if (r == 0)
> + r = -ETIMEDOUT;
> + if (r < 0)
> + goto error;
> +
> r = amdgpu_uvd_get_destroy_msg(ring, 1, true, &fence);
> if (r)
> goto error;
More information about the amd-gfx
mailing list