[RFC 4/4] drm/amdgpu: Expose special on chip memory pools in fdinfo

Christian König christian.koenig at amd.com
Mon Oct 28 17:51:33 UTC 2024


Am 24.10.24 um 11:23 schrieb Tvrtko Ursulin:
> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>
> In the past these specialized on chip memory pools were reported as system
> memory (aka 'cpu') which was not correct and misleading. That has since
> been removed so lets make them visible as their own respective memory
> regions.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Yunxiang Li <Yunxiang.Li at amd.com>
> Cc: Alex Deucher <alexdeucher at gmail.com>

Of hand looks correct to me, feel free to add my Reviewed-by: Christian 
König <christian.koenig at amd.com>

> ---
> It is easy to do but is it worth it I leave to AMD experts to decide.
>
> I gave it a quick spin and have only seen all zeros when running a Steam
> game.

Usage depends on HW generation and use case. IIRC GDS is the most used, 
but only in some rare use cases.

The upcoming HW generations will depend quite a bit on doorbells.

Regards,
Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
> index 7a9573958d87..df2cf5c33925 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
> @@ -66,6 +66,10 @@ void amdgpu_show_fdinfo(struct drm_printer *p, struct drm_file *file)
>   		[TTM_PL_VRAM] = "vram",
>   		[TTM_PL_TT] = "gtt",
>   		[TTM_PL_SYSTEM] = "cpu",
> +		[AMDGPU_PL_GDS] = "gds",
> +		[AMDGPU_PL_GWS] = "gws",
> +		[AMDGPU_PL_OA] = "oa",
> +		[AMDGPU_PL_DOORBELL] = "doorbell",
>   	};
>   	unsigned int hw_ip, i;
>   	int ret;
> @@ -87,12 +91,16 @@ void amdgpu_show_fdinfo(struct drm_printer *p, struct drm_file *file)
>   
>   	drm_printf(p, "pasid:\t%u\n", fpriv->vm.pasid);
>   
> -	for (i = 0; i < TTM_PL_PRIV; i++)
> +	for (i = 0; i < ARRAY_SIZE(pl_name); i++) {
> +		if (!pl_name[i])
> +			continue;
> +
>   		drm_print_memory_stats(p,
>   				       &stats[i].drm,
>   				       DRM_GEM_OBJECT_RESIDENT |
>   				       DRM_GEM_OBJECT_PURGEABLE,
>   				       pl_name[i]);
> +	}
>   
>   	/* Legacy amdgpu keys, alias to drm-resident-memory-: */
>   	drm_printf(p, "drm-memory-vram:\t%llu KiB\n",



More information about the amd-gfx mailing list