Re: [PATCH 14/14] x86/efi: Print size in binary units in efi_print_memmap

From: Laszlo Ersek
Date: Tue Feb 09 2016 - 07:54:09 EST


On 02/09/16 13:20, Ingo Molnar wrote:
>
> * Elliott, Robert (Persistent Memory) <elliott@xxxxxxx> wrote:
>
>>
>>> -----Original Message-----
>>> From: Matt Fleming [mailto:matt@xxxxxxxxxxxxxxxxxxx]
>>> Sent: Wednesday, February 3, 2016 5:28 AM
>>> To: Ingo Molnar <mingo@xxxxxxxxxx>
>>> Cc: Laszlo Ersek <lersek@xxxxxxxxxx>; H . Peter Anvin <hpa@xxxxxxxxx>;
>>> Thomas Gleixner <tglx@xxxxxxxxxxxxx>; linux-efi@xxxxxxxxxxxxxxx; linux-
>>> kernel@xxxxxxxxxxxxxxx; Elliott, Robert (Persistent Memory)
>>> <elliott@xxxxxxx>; Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>;
>>> Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>; Taku Izumi
>>> <izumi.taku@xxxxxxxxxxxxxx>; Linus Torvalds <torvalds@linux-
>>> foundation.org>; Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>>> Subject: Re: [PATCH 14/14] x86/efi: Print size in binary units in
>>> efi_print_memmap
>> ...
>>> OK, this patch has caused enough headaches. Let's drop it from this
>>> series.
>>>
>>> Robert, Andy, feel free to resubmit it after you've addressed
>>> everyone's concerns and we can discuss it in isolation.
>>
>> We could just delete the size print altogether - better to print
>> nothing than a silently rounded number. The end address already
>> communicates the size - it's just not as readable.
>>
>> The e820 table prints don't bother with a size print.
>>
>> That would also shorten these extremely wide prints to 116
>> characters (131 if printk time is enabled).
>>
>> [ 0.000000] BIOS-e820: [mem 0x0000001880000000-0x000000207fffffff] reserved
>> vs.
>> [ 0.000000] efi: mem62: [Reserved | | |NV| | | | | |WB|WT|WC|UC] range=[0x0000001880000000-0x000000207fffffff] (32 GiB)
>
> So I find the latter a lot more readable - my terminals are wide enough ;-)
>
> Humans are also rather bad at parsing 64-bit hexa address ranges at a glance, so
> the size display is very useful.
>
> But the flags portion should be shortened via appropriately chosen
> single-character abbreviations for the flags. Anyone deeply intimate with the code
> will recognize the flags - others won't care one way or another.
>
> plus there's no need to write out 'range='.
>
> ... and please keep the size and just use GB/TB for chrissake.
>
> I.e. something like this would work for me:
>
>> [ 0.000000] efi: mem62: 0x0000001880000000-0x000000207fffffff ( 32 GB) .N....BTCU "Reserved"

Sorry to disagree :), but I count myself somewhat intimate with UEFI
(albeit more from the edk2 side), and while I can make sense of

|NV| | | | | |WB|WT|WC|UC]

I find

.N....BTCU

mostly undecipherable. :)

My original goal with this printout was to (a) provide a good impression
of the entire UEFI memmap, at a glance, (b) provide sufficient detail
per-entry, if necessary.

(I don't exactly recall why I was staring at the UEFI memmap dump at
that time, maybe I was working on S3 in OVMF which took a lot of memmap
massaging, or debugging some bug; either way my eyes were bleeding
trying to decode the numeric attributes.)

My xterm, maximized, has 239 columns, which I think counts as pretty low
for today's resolutions. It is nonetheless plenty wide for the current
output. Given that we print this stuff only when debugging information
is requested, I feel that the value of the current columnar output, in
which I can follow a single attribute with my eye across all entries,
should not be diminished, by compressing the columns.

I'm not a wide screen maniac; for example I insist on source code being
wrapped at 79 characters, commit messages at 74, emails at 72 (except
diagrams and log excerpts), and so on. But debug output is different.

My 2 cents, of course...

Thanks
Laszlo