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]
Message-ID: <20160411061219.GA23157@dhcp22.suse.cz>
Date:	Mon, 11 Apr 2016 08:12:19 +0200
From:	Michal Hocko <mhocko@...nel.org>
To:	Alexandru Juncu <alexj@...ux.com>
Cc:	linux-kernel@...r.kernel.org, den@...nvz.org, redkoi@...tuozzo.com,
	rkagan@...tuozzo.com, hannes@...xchg.org
Subject: Re: [PATCH] proc: meminfo: Replace kB with KiB in output

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.

> 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