[PATCH 1/4] drm/amdgpu: add the evf attached gem obj resv dump

Christian König christian.koenig at amd.com
Wed Apr 16 11:01:24 UTC 2025


Am 16.04.25 um 10:50 schrieb Prike Liang:
> This debug dump will help on debugging the evf attached gem obj fence
> related issue.

That looks like overkill to me and will just massively spam the debug log.

Christian.

>
> Signed-off-by: Prike Liang <Prike.Liang at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c | 13 +++++++++++++
>  drivers/gpu/drm/amd/amdgpu/amdgpu_object.c         |  6 +++++-
>  2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
> index 0075469550b0..7030d721196b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
> @@ -86,6 +86,19 @@ amdgpu_eviction_fence_replace_fence(struct amdgpu_eviction_fence_mgr *evf_mgr,
>  		if (ret) {
>  			DRM_ERROR("Failed to attch new eviction fence\n");
>  			goto free_err;
> +		} else {
> +			struct dma_resv_iter cursor;
> +			struct dma_fence *fence;
> +			static const char *usage[] = { "kernel", "write", "read", "bookkeep" };
> +
> +			dma_resv_for_each_fence(&cursor, obj->resv, DMA_RESV_USAGE_READ, fence) {
> +				DRM_DEBUG("after attach evf the resv dump usage:%s\n"
> +					   "after attach evf name:%s timeline name:%s seq:%lld %ssingned\n",
> +					usage[dma_resv_iter_usage(&cursor)],
> +					fence->ops->get_driver_name(fence),
> +					fence->ops->get_timeline_name(fence), fence->seqno,
> +					dma_fence_is_signaled(fence) ? "" : "un");
> +			}
>  		}
>  	}
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index d09db052e282..1e73ce30d4d7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -1675,7 +1675,11 @@ u64 amdgpu_bo_print_info(int id, struct amdgpu_bo *bo, struct seq_file *m)
>  	amdgpu_bo_print_flag(m, bo, VRAM_CONTIGUOUS);
>  	amdgpu_bo_print_flag(m, bo, VM_ALWAYS_VALID);
>  	amdgpu_bo_print_flag(m, bo, EXPLICIT_SYNC);
> -
> +	/* Add the gem obj resv fence dump*/
> +	if (dma_resv_trylock(bo->tbo.base.resv)) {
> +		dma_resv_describe(bo->tbo.base.resv, m);
> +		dma_resv_unlock(bo->tbo.base.resv);
> +	}
>  	seq_puts(m, "\n");
>  
>  	return size;



More information about the amd-gfx mailing list