[PATCH i-g-t] lib/igt_drm_fdinfo: Handle amdgpu memory stats

Tvrtko Ursulin tvrtko.ursulin at igalia.com
Fri May 3 13:53:20 UTC 2024


On 03/05/2024 14:32, Lucas De Marchi wrote:
> On Fri, May 03, 2024 at 01:37:31PM GMT, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>>
>> Code so far only handles the clients using the common DRM helper.
>>
>> Handle the amdgpu driver which uses a slightly different set of keys. 
>> More
>> specifically, outputs drm-memory-<region> instead of drm-total-<region>.
>>
>> With this added gputop starts showing total memory usage for amdgpu.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>> Cc: Alex Deucher <alexander.deucher at amd.com>
>> Cc: Christian König <christian.keonig at amd.com>
>> Cc: Rob Clark <robdclark at chromium.org>
>> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>> ---
>> lib/igt_drm_fdinfo.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/lib/igt_drm_fdinfo.c b/lib/igt_drm_fdinfo.c
>> index cab677df29a9..89992f1477ec 100644
>> --- a/lib/igt_drm_fdinfo.c
>> +++ b/lib/igt_drm_fdinfo.c
>> @@ -262,6 +262,10 @@ __igt_parse_drm_fdinfo(int dir, const char *fd, 
>> struct drm_client_fdinfo *info,
>>             idx = parse_region(l, info, strlen("drm-total-"),
>>                        region_map, region_entries, &val);
>>             UPDATE_REGION(idx, total, val);
>> +        } else if (!strncmp(l, "drm-memory-", 11)) {
>> +            idx = parse_region(l, info, strlen("drm-memory-"),
>> +                       region_map, region_entries, &val);
>> +            UPDATE_REGION(idx, total, val);
> 
> are they the same thing? Should we clarify the doc that a driver can't
> use both drm-memory- and drm-total-?
> 
>      - drm-memory-<region>: <uint> [KiB|MiB]
>      Each possible memory type which can be used to store buffer objects 
> by the     GPU in question shall be given a stable and unique name to be 
> returned as the     string here.  The name "memory" is reserved to refer 
> to normal system memory.
>      Value shall reflect the amount of storage currently consumed by the 
> buffer     objects belong to this client, in the respective memory region.
>      Default unit shall be bytes with optional unit specifiers of 'KiB' 
> or 'MiB'     indicating kibi- or mebi-bytes.
>      - drm-total-<region>: <uint> [KiB|MiB]
> 
>      The total size of buffers that including shared and private memory.
> 
> If they are the same and the total field can just be re-used,

Yep exactly, they are the same in practice so we are lucky that we are 
able to fix it still. See: 
https://lore.kernel.org/amd-gfx/CADnq5_NAO_Ao0EJTO=MJxvR-KJkF1WCwKGV-9ami7qQdzf029w@mail.gmail.com/T/#t 
(I forgot to CC dri-devel when posting the patch.)

> 
> 
>      Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>

Thanks! Are you okay if I put this in first since it collides with your 
fdinfo rework?

Although I will wait for the drm-usage-stats.rst patch to get approved 
first.

Regards,

Tvrtko

> Lucas De Marchi
> 
>>         } else if (!strncmp(l, "drm-shared-", 11)) {
>>             idx = parse_region(l, info, strlen("drm-shared-"),
>>                        region_map, region_entries, &val);
>> -- 
>> 2.44.0
>>


More information about the igt-dev mailing list