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] [day] [month] [year] [list]
Date:   Mon, 7 Oct 2019 20:59:20 -0500
From:   Dimitri Sivanich <sivanich@....com>
To:     Joe Perches <joe@...ches.com>
Cc:     Christoph Hellwig <hch@....de>, Arnd Bergmann <arnd@...db.de>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        linux-kernel <linux-kernel@...r.kernel.org>,
        Dimitri Sivanich <sivanich@....com>
Subject: Re: [PATCH] sgi-gru: simplify procfs code some more

While a reduction in object size is welcome, in this case it does come at the
expense of some clarity, as field sizes are no longer as clear.
Nevertheless, will add my ack.

Acked-by: Dimitri Sivanich <sivanich@....com>

On Mon, Oct 07, 2019 at 11:30:46AM -0700, Joe Perches wrote:
> Use seq_puts and simple string output and not seq_printf with formats
> and individual strings to reduce overall object size.
> 
> $ size drivers/misc/sgi-gru/gruprocfs.o* (x86-64 defconfig with gru)
>    text	   data	    bss	    dec	    hex	filename
>    7006	      8	      0	   7014	   1b66	drivers/misc/sgi-gru/gruprocfs.o.new
>    7472	      8	      0	   7480	   1d38	drivers/misc/sgi-gru/gruprocfs.o.old
> 
> Signed-off-by: Joe Perches <joe@...ches.com>
> ---
>  drivers/misc/sgi-gru/gruprocfs.c | 11 ++++-------
>  1 file changed, 4 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c
> index 3a8d76d1ccae..2817f4751306 100644
> --- a/drivers/misc/sgi-gru/gruprocfs.c
> +++ b/drivers/misc/sgi-gru/gruprocfs.c
> @@ -119,7 +119,7 @@ static int mcs_statistics_show(struct seq_file *s, void *p)
>  		"cch_interrupt_sync", "cch_deallocate", "tfh_write_only",
>  		"tfh_write_restart", "tgh_invalidate"};
>  
> -	seq_printf(s, "%-20s%12s%12s%12s\n", "#id", "count", "aver-clks", "max-clks");
> +	seq_puts(s, "#id                        count   aver-clks    max-clks\n");
>  	for (op = 0; op < mcsop_last; op++) {
>  		count = atomic_long_read(&mcs_op_statistics[op].count);
>  		total = atomic_long_read(&mcs_op_statistics[op].total);
> @@ -165,8 +165,7 @@ static int cch_seq_show(struct seq_file *file, void *data)
>  	const char *mode[] = { "??", "UPM", "INTR", "OS_POLL" };
>  
>  	if (gid == 0)
> -		seq_printf(file, "#%5s%5s%6s%7s%9s%6s%8s%8s\n", "gid", "bid",
> -			   "ctx#", "asid", "pid", "cbrs", "dsbytes", "mode");
> +		seq_puts(file, "#  gid  bid  ctx#   asid      pid  cbrs dsbytes    mode\n");
>  	if (gru)
>  		for (i = 0; i < GRU_NUM_CCH; i++) {
>  			ts = gru->gs_gts[i];
> @@ -191,10 +190,8 @@ static int gru_seq_show(struct seq_file *file, void *data)
>  	struct gru_state *gru = GID_TO_GRU(gid);
>  
>  	if (gid == 0) {
> -		seq_printf(file, "#%5s%5s%7s%6s%6s%8s%6s%6s\n", "gid", "nid",
> -			   "ctx", "cbr", "dsr", "ctx", "cbr", "dsr");
> -		seq_printf(file, "#%5s%5s%7s%6s%6s%8s%6s%6s\n", "", "", "busy",
> -			   "busy", "busy", "free", "free", "free");
> +		seq_puts(file, "#  gid  nid    ctx   cbr   dsr     ctx   cbr   dsr\n");
> +		seq_puts(file, "#             busy  busy  busy    free  free  free\n");
>  	}
>  	if (gru) {
>  		ctxfree = GRU_NUM_CCH - gru->gs_active_contexts;
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ