* [resend][PATCH v10 0/2] ns, procfs: pid conversion between ns @ 2015-02-22 11:48 Chen Hanxiao 2015-02-22 11:48 ` [resend][PATCH v10 1/2] /proc/PID/status: show all sets of pid according to ns Chen Hanxiao 2015-02-22 11:48 ` [PATCH v10 2/2] docs: add missing and new /proc/PID/status file entries, fix typos Chen Hanxiao 0 siblings, 2 replies; 4+ messages in thread From: Chen Hanxiao @ 2015-02-22 11:48 UTC (permalink / raw) To: Eric W. Biederman, Andrew Morton Cc: containers, linux-kernel, linux-doc, Serge Hallyn, Jonathan Corbet, Gui Jianfeng, Nathan Scott Chen Hanxiao (1): /proc/PID/status: show all sets of pid according to ns Nathan Scott (1): docs: add missing and new /proc/PID/status file entries, fix typos Documentation/filesystems/proc.txt | 11 ++++++++--- fs/proc/array.c | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) -- 2.1.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [resend][PATCH v10 1/2] /proc/PID/status: show all sets of pid according to ns 2015-02-22 11:48 [resend][PATCH v10 0/2] ns, procfs: pid conversion between ns Chen Hanxiao @ 2015-02-22 11:48 ` Chen Hanxiao 2015-02-23 16:56 ` Serge E. Hallyn 2015-02-22 11:48 ` [PATCH v10 2/2] docs: add missing and new /proc/PID/status file entries, fix typos Chen Hanxiao 1 sibling, 1 reply; 4+ messages in thread From: Chen Hanxiao @ 2015-02-22 11:48 UTC (permalink / raw) To: Eric W. Biederman, Andrew Morton Cc: containers, linux-kernel, linux-doc, Serge Hallyn, Jonathan Corbet, Gui Jianfeng, Nathan Scott If some issues occurred inside a container guest, host user could not know which process is in trouble just by guest pid: the users of container guest only knew the pid inside containers. This will bring obstacle for trouble shooting. This patch adds four fields: NStgid, NSpid, NSpgid and NSsid: a) In init_pid_ns, nothing changed; b) In one pidns, will tell the pid inside containers: NStgid: 21776 5 1 NSpid: 21776 5 1 NSpgid: 21776 5 1 NSsid: 21729 1 0 ** Process id is 21776 in level 0, 5 in level 1, 1 in level 2. c) If pidns is nested, it depends on which pidns are you in. NStgid: 5 1 NSpid: 5 1 NSpgid: 5 1 NSsid: 1 0 ** Views from level 1 Acked-by: Serge Hallyn <serge.hallyn@canonical.com> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Tested-by: Serge Hallyn <serge.hallyn@canonical.com> Tested-by: Nathan Scott <nathans@redhat.com> Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> --- v10: remove trailing space of pid numbers rebased on 3.19 v9: rebased on 3.19-rc1 No change from v4-v8 v3: add another two fielsd: NSpgid and NSsid. v2: add two new fields: NStgid and NSpid. keep fields of Tgid and Pid unchanged for back compatibility. fs/proc/array.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/fs/proc/array.c b/fs/proc/array.c index 1295a00..d79bad9 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -188,6 +188,22 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns, from_kgid_munged(user_ns, GROUP_AT(group_info, g))); put_cred(cred); + seq_puts(m, "\nNStgid:"); + for (g = ns->level; g <= pid->level; g++) + seq_printf(m, "\t%d", + task_tgid_nr_ns(p, pid->numbers[g].ns)); + seq_puts(m, "\nNSpid:"); + for (g = ns->level; g <= pid->level; g++) + seq_printf(m, "\t%d", + task_pid_nr_ns(p, pid->numbers[g].ns)); + seq_puts(m, "\nNSpgid:"); + for (g = ns->level; g <= pid->level; g++) + seq_printf(m, "\t%d", + task_pgrp_nr_ns(p, pid->numbers[g].ns)); + seq_puts(m, "\nNSsid:"); + for (g = ns->level; g <= pid->level; g++) + seq_printf(m, "\t%d", + task_session_nr_ns(p, pid->numbers[g].ns)); seq_putc(m, '\n'); } -- 2.1.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [resend][PATCH v10 1/2] /proc/PID/status: show all sets of pid according to ns 2015-02-22 11:48 ` [resend][PATCH v10 1/2] /proc/PID/status: show all sets of pid according to ns Chen Hanxiao @ 2015-02-23 16:56 ` Serge E. Hallyn 0 siblings, 0 replies; 4+ messages in thread From: Serge E. Hallyn @ 2015-02-23 16:56 UTC (permalink / raw) To: Chen Hanxiao Cc: Eric W. Biederman, Andrew Morton, Jonathan Corbet, containers, Serge Hallyn, linux-doc, linux-kernel, Nathan Scott On Sun, Feb 22, 2015 at 07:48:04PM +0800, Chen Hanxiao wrote: > If some issues occurred inside a container guest, host user > could not know which process is in trouble just by guest pid: > the users of container guest only knew the pid inside containers. > This will bring obstacle for trouble shooting. > > This patch adds four fields: NStgid, NSpid, NSpgid and NSsid: > a) In init_pid_ns, nothing changed; > > b) In one pidns, will tell the pid inside containers: > NStgid: 21776 5 1 > NSpid: 21776 5 1 > NSpgid: 21776 5 1 > NSsid: 21729 1 0 > ** Process id is 21776 in level 0, 5 in level 1, 1 in level 2. > > c) If pidns is nested, it depends on which pidns are you in. > NStgid: 5 1 > NSpid: 5 1 > NSpgid: 5 1 > NSsid: 1 0 > ** Views from level 1 So obviously (since I acked it) I see no problems with this patch or the api, but it occurs to me that you have not cc:d linux-api? Since a procfile addition is something we're stuck with for eternity, it seems worth it. If we get an ack from there, then i'd say email to Linus directly. Putting this through -mm doesn't really seem necessary given its nature. > Acked-by: Serge Hallyn <serge.hallyn@canonical.com> > Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> > > Tested-by: Serge Hallyn <serge.hallyn@canonical.com> > Tested-by: Nathan Scott <nathans@redhat.com> > > Signed-off-by: Chen Hanxiao <chenhanxiao@cn.fujitsu.com> > --- > v10: remove trailing space of pid numbers > rebased on 3.19 > v9: rebased on 3.19-rc1 > No change from v4-v8 > v3: add another two fielsd: NSpgid and NSsid. > v2: add two new fields: NStgid and NSpid. > keep fields of Tgid and Pid unchanged for back compatibility. > > fs/proc/array.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/fs/proc/array.c b/fs/proc/array.c > index 1295a00..d79bad9 100644 > --- a/fs/proc/array.c > +++ b/fs/proc/array.c > @@ -188,6 +188,22 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns, > from_kgid_munged(user_ns, GROUP_AT(group_info, g))); > put_cred(cred); > > + seq_puts(m, "\nNStgid:"); > + for (g = ns->level; g <= pid->level; g++) > + seq_printf(m, "\t%d", > + task_tgid_nr_ns(p, pid->numbers[g].ns)); > + seq_puts(m, "\nNSpid:"); > + for (g = ns->level; g <= pid->level; g++) > + seq_printf(m, "\t%d", > + task_pid_nr_ns(p, pid->numbers[g].ns)); > + seq_puts(m, "\nNSpgid:"); > + for (g = ns->level; g <= pid->level; g++) > + seq_printf(m, "\t%d", > + task_pgrp_nr_ns(p, pid->numbers[g].ns)); > + seq_puts(m, "\nNSsid:"); > + for (g = ns->level; g <= pid->level; g++) > + seq_printf(m, "\t%d", > + task_session_nr_ns(p, pid->numbers[g].ns)); > seq_putc(m, '\n'); > } > > -- > 2.1.0 > > _______________________________________________ > Containers mailing list > Containers@lists.linux-foundation.org > https://lists.linuxfoundation.org/mailman/listinfo/containers ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v10 2/2] docs: add missing and new /proc/PID/status file entries, fix typos 2015-02-22 11:48 [resend][PATCH v10 0/2] ns, procfs: pid conversion between ns Chen Hanxiao 2015-02-22 11:48 ` [resend][PATCH v10 1/2] /proc/PID/status: show all sets of pid according to ns Chen Hanxiao @ 2015-02-22 11:48 ` Chen Hanxiao 1 sibling, 0 replies; 4+ messages in thread From: Chen Hanxiao @ 2015-02-22 11:48 UTC (permalink / raw) To: Eric W. Biederman, Andrew Morton Cc: containers, linux-kernel, linux-doc, Serge Hallyn, Jonathan Corbet, Gui Jianfeng, Nathan Scott From: Nathan Scott <nathans@redhat.com> --- Documentation/filesystems/proc.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index a07ba61..6d37062 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt @@ -200,12 +200,12 @@ contains details information about the process itself. Its fields are explained in Table 1-4. (for SMP CONFIG users) -For making accounting scalable, RSS related information are handled in -asynchronous manner and the vaule may not be very precise. To see a precise +For making accounting scalable, RSS related information are handled in an +asynchronous manner and the value may not be very precise. To see a precise snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table. It's slow but very precise. -Table 1-2: Contents of the status files (as of 2.6.30-rc7) +Table 1-2: Contents of the status files (as of 3.20.0) .............................................................................. Field Content Name filename of the executable @@ -213,6 +213,7 @@ Table 1-2: Contents of the status files (as of 2.6.30-rc7) in an uninterruptible wait, Z is zombie, T is traced or stopped) Tgid thread group ID + Ngid NUMA group ID (0 if none) Pid process id PPid process id of the parent process TracerPid PID of process tracing this process (0 if not) @@ -220,6 +221,10 @@ Table 1-2: Contents of the status files (as of 2.6.30-rc7) Gid Real, effective, saved set, and file system GIDs FDSize number of file descriptor slots currently allocated Groups supplementary group list + NStgid descendant namespace thread group ID hierarchy + NSpid descendant namespace process ID hierarchy + NSpgid descendant namespace process group ID hierarchy + NSsid descendant namespace session ID hierarchy VmPeak peak virtual memory size VmSize total program size VmLck locked memory size -- 2.1.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-02-23 16:57 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-02-22 11:48 [resend][PATCH v10 0/2] ns, procfs: pid conversion between ns Chen Hanxiao 2015-02-22 11:48 ` [resend][PATCH v10 1/2] /proc/PID/status: show all sets of pid according to ns Chen Hanxiao 2015-02-23 16:56 ` Serge E. Hallyn 2015-02-22 11:48 ` [PATCH v10 2/2] docs: add missing and new /proc/PID/status file entries, fix typos Chen Hanxiao
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox