[CRIU] [PATCH 0/7] Skip iteration on open files to find parent's leftovers (optimize child creation)

Kirill Tkhai ktkhai at virtuozzo.com
Wed Jun 28 18:53:48 MSK 2017


We are CRIU, and we control our own file descriptors.
We know, where we open them, and where we close them.

So, we can skip iterations on parent files leftovers
in the most cases, and this should speed up child
creation (just because there will be one less operation).

The only case, we can't control parent's open files state,
is when parent has shared fd table. This case, parent's
siblings create files in parallel with the parent creates
the child, so we should find the leftovers. But it's
less then 1% cases, and it's good to skip such unnecessary
actions for generic case.

https://travis-ci.org/tkhai/criu/builds/247938937

---

Kirill Tkhai (7):
      mnt_ns: Move open_proc() up in prepare_mnt_ns()
      utils: Introduce SWAP() helper to exchange two variables
      mnt: Move ns_fd assignment down in prepare_mnt_ns()
      mnt_ns: Use fdstore to keep mount namespaces
      forking: Always close pid proc before child creation
      restore: Use vpid in log_init_by_pid() instead of getpid()
      restore: Do not iterate over parent's files to find leftovers


 criu/cr-restore.c         |   47 ++++++++++++++++++++++++++-------------------
 criu/include/criu-log.h   |    2 +-
 criu/include/namespaces.h |    2 +-
 criu/include/pid.h        |    8 ++------
 criu/log.c                |    6 +++---
 criu/mount.c              |   28 +++++++++++++--------------
 include/common/compiler.h |    7 +++++++
 7 files changed, 55 insertions(+), 45 deletions(-)

--
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>


More information about the CRIU mailing list