--- Robert Elliott, HPE Persistent Memory
> -----Original Message----- > From: Andy Shevchenko [mailto:[email protected]] > Sent: Monday, January 25, 2016 2:01 PM > To: James Bottomley <[email protected]> > Cc: Elliott, Robert (Persistent Memory) <[email protected]>; Andy Shevchenko > <[email protected]>; Matt Fleming > <[email protected]>; Thomas Gleixner <[email protected]>; Ingo > Molnar <[email protected]>; H . Peter Anvin <[email protected]>; linux- > [email protected]; Rasmus Villemoes <[email protected]>; Andrew > Morton <[email protected]>; linux-kernel @ vger . kernel . org > <[email protected]> > Subject: Re: [PATCH v3 3/4] x86/efi: print size in binary units in > efi_print_memmap > > On Mon, Jan 25, 2016 at 9:45 PM, James Bottomley > <[email protected]> wrote: > > On Mon, 2016-01-25 at 21:28 +0200, Andy Shevchenko wrote: > >> On Mon, Jan 25, 2016 at 8:56 PM, James Bottomley > >> <[email protected]> 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. For the UEFI memory map, that was indeed my intention. I don't want it silently round to "20 GiB". Even rounding to "19.999 GiB" is imprecise. Another option could be to use a "~" prefix for imperfect values, like "~20 GiB". That would serve as a warning that something's not quite right.

