linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [resend][PATCH v9 0/3] ns, procfs: pid conversion between ns and showing pidns hierarchy
@ 2014-12-23 10:20 Chen Hanxiao
  2014-12-23 10:20 ` [resend][PATCH v9 1/3] procfs: show hierarchy of pid namespace Chen Hanxiao
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Chen Hanxiao @ 2014-12-23 10:20 UTC (permalink / raw)
  To: Eric W. Biederman, Serge Hallyn, Andrew Morton, Pavel Emelyanov
  Cc: containers, linux-kernel, David Howells, Vasiliy Kulikov,
	Mateusz Guzik, Oleg Nesterov, Richard Weinberger

This series will expose pid inside containers
via procfs.
Also show the hierarchy of pid namespcae.
Then we could know how pid looks inside a container
and their ns relationships.

1. helpful for nested container checkpoint/restore

  We could know whether two pids had relationship
  between each other.

      init_pid_ns 1
            │
   ┌────────────┐
  ns1                       ns2
   │                        │
  200                       300
                             │
                            ns2
                             │
                            400

  #cat /proc/pidns_hierarchy
  200 1 1
  300 1 1
  400 300 2

2. useful for pid translation from container
  Ex:
       init_pid_ns    ns1         ns2
   t1  2
   t2   `- 3          1
   t3   `- 4          3
   t4       `- 5      `- 5        1
   t5       `- 6      `- 8        3

  It could solve problems like: we see a pid 3 goes wrong
  in container's log, what is its pid on hosts:
  a) inside container:
  # readlink /proc/3/ns/pid
  pid:[4026532388]

  b) on host:
  We show it in the form of :
  <init_PID> <parent_of_init_PID> <relative PID level>

  # cat /proc/pidns_hierarchy
  14918 1 1
  16263 14918 2
  16581 1 1
  Then we could easily find /proc/16263/ns/pid->4026532388.
  On host, we knew that reported pid 3 is in level 2,
   and its parental pid ns is from pid 14918.

  c) on host, check child of 16263, grep it from status:
  NSpid:  16268   8       3

  We knew that pid 16268 is pid 3 reported by container.

v9: fix codes be inluded if CONFIG_PID_NS=n
    add docs to describe the usage of pidns_hierarchy procfs
v8: fix some improper comments
    use max() from kernel.h
v7: change pidns_hierarchy style to be consistent
    with current interface like:
    <init_PID> <parent_of_init_PID> <relative PID level>
    remove EXPERT dependent in Kconfig.
v6: fix some get_pid leaks and do some cleanups.
v5: collect pid by find_ge_pid;
    use local list inside nslist_proc_show;
    use get_pid, remove mutex lock.
v4: simplify pid collection and some performance optimizamtion;
    fix another race issue.
v3: fix a race issue and memory leak issue in pidns_hierarchy;
    add another two fielsd: NSpgid and NSsid.
v2: use a procfs text file, replacing dirs under /proc for
    showing pidns hierarchy;
    add two new fields: NStgid and NSpid
    keep fields of Tgid and Pid unchanged for back compatibility.

Chen Hanxiao (3):
  procfs: show hierarchy of pid namespace
  /proc/PID/status: show all sets of pid according to ns
  Documentation: add docs for /proc/pidns_hierarchy

 Documentation/namespaces/pidns-hierarchy.txt |  51 +++++
 fs/proc/Kconfig                              |   6 +
 fs/proc/Makefile                             |   1 +
 fs/proc/array.c                              |  16 ++
 fs/proc/internal.h                           |   9 +
 fs/proc/pidns_hierarchy.c                    | 280 +++++++++++++++++++++++++++
 fs/proc/root.c                               |   1 +
 7 files changed, 364 insertions(+)
 create mode 100644 Documentation/namespaces/pidns-hierarchy.txt
 create mode 100644 fs/proc/pidns_hierarchy.c

-- 
1.9.3


^ permalink raw reply	[flat|nested] 8+ messages in thread
[parent not found: <55349719.6775592.1423011445985.JavaMail.zimbra@redhat.com>]

end of thread, other threads:[~2015-02-04  1:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-23 10:20 [resend][PATCH v9 0/3] ns, procfs: pid conversion between ns and showing pidns hierarchy Chen Hanxiao
2014-12-23 10:20 ` [resend][PATCH v9 1/3] procfs: show hierarchy of pid namespace Chen Hanxiao
2014-12-30  1:17   ` Chen, Hanxiao
2014-12-30  5:54   ` Eric W. Biederman
2014-12-23 10:20 ` [resend][PATCH v9 2/3] /proc/PID/status: show all sets of pid according to ns Chen Hanxiao
2014-12-30  5:39   ` Eric W. Biederman
2014-12-23 10:20 ` [PATCH v9 3/3] Documentation: add docs for /proc/pidns_hierarchy Chen Hanxiao
     [not found] <55349719.6775592.1423011445985.JavaMail.zimbra@redhat.com>
2015-02-04  1:12 ` [resend][PATCH v9 2/3] /proc/PID/status: show all sets of pid according to ns Nathan Scott

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).