[PATCH] drm/amdgpu: print more accurate error messages on IB submission failure
Alex Deucher
alexdeucher at gmail.com
Mon Aug 1 17:52:12 UTC 2016
On Mon, Aug 1, 2016 at 1:42 PM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> It's useful for debugging.
>
> Signed-off-by: Marek Olšák <marek.olsak at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> index 45d5227..e4617c4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> @@ -387,8 +387,10 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
>
> r = ttm_eu_reserve_buffers(&p->ticket, &p->validated, true,
> &duplicates);
> - if (unlikely(r != 0))
> + if (unlikely(r != 0)) {
> + DRM_ERROR("ttm_eu_reserve_buffers failed.\n");
> goto error_free_pages;
> + }
>
> /* Without a BO list we don't have userptr BOs */
> if (!p->bo_list)
> @@ -428,9 +430,10 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
> /* Unreserve everything again. */
> ttm_eu_backoff_reservation(&p->ticket, &p->validated);
>
> - /* We tried to often, just abort */
> + /* We tried too many times, just abort */
> if (!--tries) {
> r = -EDEADLK;
> + DRM_ERROR("deadlock in %s\n", __func__);
> goto error_free_pages;
> }
>
> @@ -442,11 +445,13 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
> sizeof(struct page*));
> if (!e->user_pages) {
> r = -ENOMEM;
> + DRM_ERROR("calloc failure in %s\n", __func__);
> goto error_free_pages;
> }
>
> r = amdgpu_ttm_tt_get_user_pages(ttm, e->user_pages);
> if (r) {
> + DRM_ERROR("amdgpu_ttm_tt_get_user_pages failed.\n");
> drm_free_large(e->user_pages);
> e->user_pages = NULL;
> goto error_free_pages;
> @@ -463,12 +468,16 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
> p->bytes_moved = 0;
>
> r = amdgpu_cs_list_validate(p, &duplicates);
> - if (r)
> + if (r) {
> + DRM_ERROR("amdgpu_cs_list_validate(duplicates) failed.\n");
> goto error_validate;
> + }
>
> r = amdgpu_cs_list_validate(p, &p->validated);
> - if (r)
> + if (r) {
> + DRM_ERROR("amdgpu_cs_list_validate(validated) failed.\n");
> goto error_validate;
> + }
>
> fpriv->vm.last_eviction_counter =
> atomic64_read(&p->adev->num_evictions);
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list