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 check/restore >From /proc/PID/ns/pid, we could know whether two pid lived in the same ns. >From this patch, we could know whether two pid had relationship between each other. 2. used 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. v8: fix some improper comments use max() from kernel.h v7: change stype 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 instead of 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 (2): procfs: show hierarchy of pid namespace /proc/PID/status: show all sets of pid according to ns fs/proc/Kconfig | 6 + fs/proc/Makefile | 1 + fs/proc/array.c | 17 +++ fs/proc/pidns_hierarchy.c | 280 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 304 insertions(+) create mode 100644 fs/proc/pidns_hierarchy.c -- 1.9.3 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers