[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