[PATCH 1/7] drm: Do not round to megabytes for greater than 1MiB sizes in fdinfo stats
Steven Price
steven.price at arm.com
Wed Sep 27 13:48:18 UTC 2023
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>
> ---
> 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