lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 11 Apr 2016 08:35:00 +0200
From:	Alexandru Juncu <alexj@...ux.com>
To:	Michal Hocko <mhocko@...nel.org>
Cc:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	den@...nvz.org, redkoi@...tuozzo.com, rkagan@...tuozzo.com,
	Johannes Weiner <hannes@...xchg.org>
Subject: Re: [PATCH] proc: meminfo: Replace kB with KiB in output

On 11 April 2016 at 08:12, Michal Hocko <mhocko@...nel.org> wrote:
> On Sun 10-04-16 17:23:11, Alexandru Juncu wrote:
>> Current values are based on multiples of 1024 (powers of 2)
>> which means that the values in meminfo are not kilobytes
>> (1000 bytes) but kibibytes (1024 bytes). The correct
>> prefix for that would be 'Ki' so the output should be 'KiB'.
>
> Does the difference actually matters so much that we should change a
> user visible format of a file? Some users might not ready to changes
> (say sombody did sed 's@.*:[[:space:]]*\([0-9]*\) kB@\1@' to get values.
> This change would break it which is something we try to prevent as much
> as possible.
>
> So I do not think this all is worth the potential troubles. There are
> probably other places where we present kB while we in fact think kiB.

Isn't it at least worth clearly specifying this in the documentation
(maybe also comment in code)?

>
>> Signed-off-by: Alexandru Juncu <alexj@...ux.com>
>> ---
>>  fs/proc/meminfo.c | 90 +++++++++++++++++++++++++++----------------------------
>>  1 file changed, 45 insertions(+), 45 deletions(-)
>>
>> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
>> index 8372046..5f0015e 100644
>> --- a/fs/proc/meminfo.c
>> +++ b/fs/proc/meminfo.c
>> @@ -33,7 +33,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
>>       int lru;
>>
>>  /*
>> - * display in kilobytes.
>> + * display in kibibytes.
>>   */
>>  #define K(x) ((x) << (PAGE_SHIFT - 10))
>>       si_meminfo(&i);
>> @@ -54,61 +54,61 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
>>        * Tagged format, for easy grepping and expansion.
>>        */
>>       seq_printf(m,
>> -             "MemTotal:       %8lu kB\n"
>> -             "MemFree:        %8lu kB\n"
>> -             "MemAvailable:   %8lu kB\n"
>> -             "Buffers:        %8lu kB\n"
>> -             "Cached:         %8lu kB\n"
>> -             "SwapCached:     %8lu kB\n"
>> -             "Active:         %8lu kB\n"
>> -             "Inactive:       %8lu kB\n"
>> -             "Active(anon):   %8lu kB\n"
>> -             "Inactive(anon): %8lu kB\n"
>> -             "Active(file):   %8lu kB\n"
>> -             "Inactive(file): %8lu kB\n"
>> -             "Unevictable:    %8lu kB\n"
>> -             "Mlocked:        %8lu kB\n"
>> +             "MemTotal:       %8lu KiB\n"
>> +             "MemFree:        %8lu KiB\n"
>> +             "MemAvailable:   %8lu KiB\n"
>> +             "Buffers:        %8lu KiB\n"
>> +             "Cached:         %8lu KiB\n"
>> +             "SwapCached:     %8lu KiB\n"
>> +             "Active:         %8lu KiB\n"
>> +             "Inactive:       %8lu KiB\n"
>> +             "Active(anon):   %8lu KiB\n"
>> +             "Inactive(anon): %8lu KiB\n"
>> +             "Active(file):   %8lu KiB\n"
>> +             "Inactive(file): %8lu KiB\n"
>> +             "Unevictable:    %8lu KiB\n"
>> +             "Mlocked:        %8lu KiB\n"
>>  #ifdef CONFIG_HIGHMEM
>> -             "HighTotal:      %8lu kB\n"
>> -             "HighFree:       %8lu kB\n"
>> -             "LowTotal:       %8lu kB\n"
>> -             "LowFree:        %8lu kB\n"
>> +             "HighTotal:      %8lu KiB\n"
>> +             "HighFree:       %8lu KiB\n"
>> +             "LowTotal:       %8lu KiB\n"
>> +             "LowFree:        %8lu KiB\n"
>>  #endif
>>  #ifndef CONFIG_MMU
>> -             "MmapCopy:       %8lu kB\n"
>> +             "MmapCopy:       %8lu KiB\n"
>>  #endif
>> -             "SwapTotal:      %8lu kB\n"
>> -             "SwapFree:       %8lu kB\n"
>> -             "Dirty:          %8lu kB\n"
>> -             "Writeback:      %8lu kB\n"
>> -             "AnonPages:      %8lu kB\n"
>> -             "Mapped:         %8lu kB\n"
>> -             "Shmem:          %8lu kB\n"
>> -             "Slab:           %8lu kB\n"
>> -             "SReclaimable:   %8lu kB\n"
>> -             "SUnreclaim:     %8lu kB\n"
>> -             "KernelStack:    %8lu kB\n"
>> -             "PageTables:     %8lu kB\n"
>> +             "SwapTotal:      %8lu KiB\n"
>> +             "SwapFree:       %8lu KiB\n"
>> +             "Dirty:          %8lu KiB\n"
>> +             "Writeback:      %8lu KiB\n"
>> +             "AnonPages:      %8lu KiB\n"
>> +             "Mapped:         %8lu KiB\n"
>> +             "Shmem:          %8lu KiB\n"
>> +             "Slab:           %8lu KiB\n"
>> +             "SReclaimable:   %8lu KiB\n"
>> +             "SUnreclaim:     %8lu KiB\n"
>> +             "KernelStack:    %8lu KiB\n"
>> +             "PageTables:     %8lu KiB\n"
>>  #ifdef CONFIG_QUICKLIST
>> -             "Quicklists:     %8lu kB\n"
>> +             "Quicklists:     %8lu KiB\n"
>>  #endif
>> -             "NFS_Unstable:   %8lu kB\n"
>> -             "Bounce:         %8lu kB\n"
>> -             "WritebackTmp:   %8lu kB\n"
>> -             "CommitLimit:    %8lu kB\n"
>> -             "Committed_AS:   %8lu kB\n"
>> -             "VmallocTotal:   %8lu kB\n"
>> -             "VmallocUsed:    %8lu kB\n"
>> -             "VmallocChunk:   %8lu kB\n"
>> +             "NFS_Unstable:   %8lu KiB\n"
>> +             "Bounce:         %8lu KiB\n"
>> +             "WritebackTmp:   %8lu KiB\n"
>> +             "CommitLimit:    %8lu KiB\n"
>> +             "Committed_AS:   %8lu KiB\n"
>> +             "VmallocTotal:   %8lu KiB\n"
>> +             "VmallocUsed:    %8lu KiB\n"
>> +             "VmallocChunk:   %8lu KiB\n"
>>  #ifdef CONFIG_MEMORY_FAILURE
>> -             "HardwareCorrupted: %5lu kB\n"
>> +             "HardwareCorrupted: %5lu KiB\n"
>>  #endif
>>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
>> -             "AnonHugePages:  %8lu kB\n"
>> +             "AnonHugePages:  %8lu KiB\n"
>>  #endif
>>  #ifdef CONFIG_CMA
>> -             "CmaTotal:       %8lu kB\n"
>> -             "CmaFree:        %8lu kB\n"
>> +             "CmaTotal:       %8lu KiB\n"
>> +             "CmaFree:        %8lu KiB\n"
>>  #endif
>>               ,
>>               K(i.totalram),
>> --
>> 2.5.5
>>
>
> --
> Michal Hocko
> SUSE Labs

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ