On 27/09/2023 14:38, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > > 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@xxxxxxxxx> > Cc: Rob Clark <robdclark@xxxxxxxxx> > Cc: Adrián Larumbe <adrian.larumbe@xxxxxxxxxxxxx> > Cc: steven.price@xxxxxxx Reviewed-by: Steven Price <steven.price@xxxxxxx> > --- > 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); > }