[PATCH 1/7] drm: Do not round to megabytes for greater than 1MiB sizes in fdinfo stats
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Thu Sep 28 12:47:14 UTC 2023
On 27/09/2023 14:48, Steven Price wrote:
> On 27/09/2023 14:38, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>
>> It is better not to lose precision and not revert to 1 MiB size
>> granularity for every size greater than 1 MiB.
>>
>> Sizes in KiB should not be so troublesome to read (and in fact machine
>> parsing is I expect the norm here), they align with other api like
>> /proc/meminfo, and they allow writing tests for the interface without
>> having to embed drm.ko implementation knowledge into them. (Like knowing
>> that minimum buffer size one can use for successful verification has to be
>> 1MiB aligned, and on top account for any pre-existing memory utilisation
>> outside of driver's control.)
>>
>> But probably even more importantly I think that it is just better to show
>> the accurate sizes and not arbitrary lose precision for a little bit of a
>> stretched use case of eyeballing fdinfo text directly.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>> Cc: Rob Clark <robdclark at gmail.com>
>> Cc: Adrián Larumbe <adrian.larumbe at collabora.com>
>> Cc: steven.price at arm.com
>
> Reviewed-by: Steven Price <steven.price at arm.com>
Thanks! Rob? Can we have your blessing? Could you live with KiBs? :)
Regards,
Tvrtko
>> ---
>> drivers/gpu/drm/drm_file.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
>> index e692770ef6d3..ecb5038009e7 100644
>> --- a/drivers/gpu/drm/drm_file.c
>> +++ b/drivers/gpu/drm/drm_file.c
>> @@ -913,7 +913,7 @@ static void print_size(struct drm_printer *p, const char *stat,
>> unsigned u;
>>
>> for (u = 0; u < ARRAY_SIZE(units) - 1; u++) {
>> - if (sz < SZ_1K)
>> + if (sz == 0 || !IS_ALIGNED(sz, SZ_1K))
>> break;
>> sz = div_u64(sz, SZ_1K);
>> }
>
More information about the dri-devel
mailing list