Re: [PATCH v3 3/4] x86/efi: print size in binary units in efi_print_memmap

From: James Bottomley
Date: Mon Jan 25 2016 - 15:19:05 EST


On Mon, 2016-01-25 at 22:01 +0200, Andy Shevchenko wrote:
> On Mon, Jan 25, 2016 at 9:45 PM, James Bottomley
> <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > On Mon, 2016-01-25 at 21:28 +0200, Andy Shevchenko wrote:
> > > On Mon, Jan 25, 2016 at 8:56 PM, James Bottomley
> > > <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > > > On Mon, 2016-01-25 at 18:02 +0000, Elliott, Robert (Persistent
> > > > Memory)
> > > > wrote:
> > >
> > > > Using ffs leads to precision runaway
> > >
> > > How exactly?!
> >
> > Off by one. A size of 0xffffffffffffffff prints
> > 18446744073709551615 B
> > rather than 20 GiB.
>
> Because it's not a 20 GiB. It's exactly 20 GiB - 1 B.
>
> AFAIU, the intention was to show _exact_ size.

I think that's a bad idea: The range shows you the exact stuff in hex,
so all the information is present if you want precision. What's
printed in brackets is for humans to read. I'd have to reach for a
calculator to work out that 18446744073709551615 is actually around 20
GiB.

James