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: <20120124155941.4f7453d4.akpm@linux-foundation.org>
Date:	Tue, 24 Jan 2012 15:59:41 -0800
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	Cyrill Gorcunov <gorcunov@...nvz.org>
Cc:	linux-kernel@...r.kernel.org,
	Pavel Emelyanov <xemul@...allels.com>,
	Serge Hallyn <serge.hallyn@...onical.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
	Kees Cook <keescook@...omium.org>, Tejun Heo <tj@...nel.org>,
	Andrew Vagin <avagin@...nvz.org>,
	"Eric W. Biederman" <ebiederm@...ssion.com>,
	Alexey Dobriyan <adobriyan@...il.com>,
	Vasiliy Kulikov <segoon@...nwall.com>
Subject: Re: [patch 3/4] c/r: procfs: add arg_start/end, env_start/end and
 exit_code members to /proc/$pid/stat

On Mon, 23 Jan 2012 18:20:39 +0400
Cyrill Gorcunov <gorcunov@...nvz.org> wrote:

> We would like to have an ability to restore command line
> arguments and envirion pointers so the task being restored
> would print appropriate values in /proc/pid/cmdline and
> /proc/pid/envirion. The exit_code is needed to restore
> zombie tasks.
> 

Please update Documentation/filesystems/proc.txt.

>
> --- linux-2.6.git.orig/fs/proc/array.c
> +++ linux-2.6.git/fs/proc/array.c
> @@ -464,7 +464,8 @@ static int do_task_stat(struct seq_file
>  
>  	seq_printf(m, "%d (%s) %c %d %d %d %d %d %u %lu \
>  %lu %lu %lu %lu %lu %ld %ld %ld %ld %d 0 %llu %lu %ld %lu %lu %lu %lu %lu \
> -%lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld %lu %lu %lu\n",
> +%lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld %lu %lu %lu \
> +%lu %lu %lu %lu %d\n",
>  		pid_nr_ns(pid, ns),
>  		tcomm,
>  		state,
> @@ -514,7 +515,12 @@ static int do_task_stat(struct seq_file
>  		cputime_to_clock_t(cgtime),
>  		(mm && permitted) ? mm->start_data : 0,
>  		(mm && permitted) ? mm->end_data : 0,
> -		(mm && permitted) ? mm->start_brk : 0);
> +		(mm && permitted) ? mm->start_brk : 0,
> +		(mm && permitted) ? mm->arg_start : 0,
> +		(mm && permitted) ? mm->arg_end : 0,
> +		(mm && permitted) ? mm->env_start : 0,
> +		(mm && permitted) ? mm->env_end : 0,
> +		task->exit_code);
>  	if (mm)
>  		mmput(mm);
>  	return 0;

/proc/pid/stat is getting out of control.  People are now sending patches
because reading from this thing already takes too long.

The problem is that if you only want one field, you have to incur the
cost of preparing all the fields.  The magnitude of this problem
increases exponentially over time!

I'm unsure what to do about it really.  Perhaps add a new
/proc/pid/mmstat for MM-specific things.  We could put the above six
fields in there, as long as we move quickly.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ