[CRIU] [PATCH v4 00/41] Nested pid namespaces support
Kirill Tkhai
ktkhai at virtuozzo.com
Thu May 4 09:04:54 PDT 2017
Hi,
this is the fourth version of nested pid namespaces support.
The most signify change in this version are support for zombies
from child pid namespaces, and collecting NSpids during seize
of a task (instead of collecting on dump-time).
Also, there are other small changes from the discussion
to previous version.
---
Kirill Tkhai (41):
pstree: Implement vpgid(), vsid() and vtid()
pstree: Implement free_pstree_item() helper
ns: Do not change net_ns in prepare_net_namespaces()
mnt: Put root fd to fdstore
cr-restore: Open transport socket earlier
zdtm: Add pidns00 test
zdtm: Add pidns01 test
pid_ns: Implement pid_ns_root_off()
pstree: Change arguments in parse_pid_status()
pstree: Introduce PID_SIZE() helper
pstree: Use thread group leader level of pid to allocate threads
pstree: Move thread allocation up and do cleanup
pstree: Pre-dump ns ids before tasks
pstree: Collect NSpid, NSsid and NStgid when possible
pstree: Skip zombie dumping tricks if there is kdat.has_nspid
zombie: Kill by last_level_pid, not by vpid
images: Add NSpids pstree descriptions
pstree: Dump and restore NSpid, NSsid etc
pstree: Make get_free_pid() work for different pid_ns and export it
pstree: Extract __pstree_item_by_virt() to act on any pid_ns
ns: Reserve pid_ns helpers
restore: Implement set_next_pid() helper
pid: Always lock last pid file on clone()
pid: Add fdstore id for pid_ns descriptor
fdstore: Init fdstore earlier
pid: Save created pid_ns fd to fdstore
ns: Always start usernsd
pid: Add pid ns futex helper_created
ns: Install transport fd socket in usernsd
cr-restore: Add argument to criu_signals_setup()
ns: Add usernsd signal handler
pid: Create pid_ns helpers
pid: Wait till pid_ns created before we create a child of this ns
pid: Set pid_ns before we create a child
pid_ns: Set user_ns before creation of pid_ns
pid: Teach set_next_pid() working with nested pid_ns
restorer: Close transport socket later
restorer: Set NStids in all pid_ns for thread before we create it.
pid: Check for equality of getpid() of child to last_level_pid
pstree: Use CLONE_NEWPID only to create child reaper of pid_ns
ns: Nested pid_ns support
criu/cr-dump.c | 70 ++++++--
criu/cr-restore.c | 349 +++++++++++++++++++++++++++++++++-------
criu/files-reg.c | 8 -
criu/files.c | 20 +-
criu/include/namespaces.h | 17 ++
criu/include/proc_parse.h | 3
criu/include/pstree.h | 28 +++
criu/include/restore.h | 3
criu/include/restorer.h | 6 +
criu/include/rst_info.h | 1
criu/mount.c | 19 +-
criu/namespaces.c | 359 +++++++++++++++++++++++++++++++++++++++++
criu/net.c | 16 +-
criu/ns-common.c | 51 ++++++
criu/pie/restorer.c | 50 ++++--
criu/proc_parse.c | 81 +++++++++
criu/pstree.c | 297 ++++++++++++++++++++++++----------
criu/seize.c | 41 +++--
criu/sk-unix.c | 11 +
criu/tty.c | 2
images/pstree.proto | 17 +-
test/zdtm/static/Makefile | 2
test/zdtm/static/pidns00.c | 205 +++++++++++++++++++++++
test/zdtm/static/pidns00.desc | 1
test/zdtm/static/pidns01.c | 164 +++++++++++++++++++
test/zdtm/static/pidns01.desc | 1
test/zdtm/static/tun.desc | 2
27 files changed, 1581 insertions(+), 243 deletions(-)
create mode 100644 criu/ns-common.c
create mode 100644 test/zdtm/static/pidns00.c
create mode 100644 test/zdtm/static/pidns00.desc
create mode 100644 test/zdtm/static/pidns01.c
create mode 100644 test/zdtm/static/pidns01.desc
--
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
More information about the CRIU
mailing list