Thread (1 message) 1 message, 1 author, 2008-02-14

Re: proc(5): /proc/[number]/cmdline explanation update

From: Michael Kerrisk <hidden>
Date: 2008-02-14 18:54:20

Possibly related (same subject, not in this thread)


Fernando Luis Vázquez Cao wrote:
Hi Michael,

It seems the old description applies to all 2.0, 2.2, and 2.3 kernels up
to and including 2.3.26. After that the behavior changed as explained in
my patch.
Thanks.  Patch applied for man-pages-2.79.

Cheers,

Michael
Fernando

On Mon, 2008-02-11 at 17:30 +0100, Michael Kerrisk wrote:
quoted
Fernando,

Do you know when (which kernel version) this change in behavior occurred?

Cheers,

Michael

Fernando Luis Vázquez Cao wrote:
quoted
It used to be true that the command line arguments were not accessible
when the process had been swapped out. In ancient kernels (circa 2.0.*)
the problem was that the kernel relied on get_phys_addr to access the
user space buffer, which stopped working as soon as the process was
swapped out. Recent kernels use get_user_pages for the same purpose and
thus they should not have that limitation.

Signed-off-by: Fernando Luis Vazquez Cao <redacted>
---
--- proc.5.orig	2008-02-06 14:11:58.000000000 +0900
+++ proc.5	2008-02-06 14:56:22.000000000 +0900
@@ -87,12 +87,11 @@ plus one \fIunsigned long\fP value for e
 The last entry contains two zeros.
 .TP
 .I /proc/[number]/cmdline
-This holds the complete command line for the process, unless the whole
-process has been swapped out or the process is a zombie.
-In either of these latter cases, there is nothing in this file:
-that is, a read on this file will return 0 characters.
-The command line arguments appear in this file as a set of
-null-separated strings, with a further null byte after the last string.
+This holds the complete command line for the process, unless the process is a
+zombie. In the latter case, there is nothing in this file: that is, a read on
+this file will return 0 characters. The command line arguments appear in this
+file as a set of null-separated strings, with a further null byte after the
+last string.
 .TP
 .I /proc/[number]/cwd
 This is a symbolic link to the current working directory of the process.

-- 
Michael Kerrisk
Maintainer of the Linux man-pages project
http://www.kernel.org/doc/man-pages/
Want to report a man-pages bug?  Look here:
http://www.kernel.org/doc/man-pages/reporting_bugs.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help