[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