52 lines
2 KiB
Diff
52 lines
2 KiB
Diff
From 5faf6e1853d30d113ebc9977e015d0152e5e1970 Mon Sep 17 00:00:00 2001
|
|
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Date: Wed, 27 Sep 2023 14:38:37 +0100
|
|
Subject: drm: Do not round to megabytes for greater than 1MiB sizes in fdinfo
|
|
stats
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
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@intel.com>
|
|
Cc: Rob Clark <robdclark@gmail.com>
|
|
Cc: Adrián Larumbe <adrian.larumbe@collabora.com>
|
|
Cc: steven.price@arm.com
|
|
Reviewed-by: Steven Price <steven.price@arm.com>
|
|
Link: https://lore.kernel.org/r/20230927133843.247957-2-tvrtko.ursulin@linux.intel.com
|
|
Signed-off-by: Maxime Ripard <mripard@kernel.org>
|
|
---
|
|
drivers/gpu/drm/drm_file.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
(limited to 'drivers/gpu/drm/drm_file.c')
|
|
|
|
diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
|
|
index 446458aca8e99..5ddaffd325865 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);
|
|
}
|
|
--
|
|
cgit 1.2.3-korg
|