[CRIU] On upcoming 2.2 release

Pavel Emelyanov xemul at virtuozzo.com
Wed May 11 06:18:01 PDT 2016


Hi

I've recently pushed what I thought was ready for the release into master branch.
Now in the criu-dev we have unmerged:

* Lazy pages
* Autofs
* Pstree RB tree
* Compel
* 32bit x86
* The new --unshare option
* The --join-ns option

and a bunch small bits an pieces. The full list is below.

If any of the above features (or anything small that I've overlooked) should hit 
the 2.2, please let me know.


Unmerged patches:

Adrian Reber (11):
      Make skip_pages function available criu-wide
      Remove static from prepare_task_entries function
      Try to include userfaultfd with criu (part 1)
      Try to include userfaultfd with criu (part 2)
      Fix userfaultfd code with newer compilers
      uffd.c: do not call unneeded functions
      uffd.c: remove unused variable vma_size
      uffd.c: move code into subfunctions
      uffd.c: make some variable static global
      uffd.c: move the code out of the 'main' function
      criu: uffd runtime detection

Andrew Vagin (20):
      pstree: move state from pstree_item to pid
      pstree: split alloc_pstree_helper
      pstree: prepare to store all pid-s in rb-tree (v3)
      pstree: use rbtree to find a specified pid (v3)
      pstree: try to find a free pid between busy pids (v2)
      autofs: include limit.h before auto_fs.h
      namespaces: don't leak memory on error paths
      util: don't leak a socket
      criu: always enable the userfaultfd support
      jenkins: add a new job to check --join-ns
      zdtm: up the loopback device in a new network namespace
      zdtm: handle unknown flavors
      mount: add support for external block devices
      zdtm: check mounts of external devices
      zdtm/cwd02: typo fix
      dump: collect all pid-s in rbtree
      dump: optimize dead_pid_conflict by searching in rbtree
      zdtm: remove bashisms from hooks
      pstree: workaround stupidity of modern compilers
      zdtm: check enabled file systems

Cyrill Gorcunov (20):
      compel: piegen -- Add @uapi-dir option
      compel: piegen -- Add @arch option
      compel: piegen -- Introduce actions
      compel: Initial commit for standalone tool
      compel: Drop config.h from deps
      criu: opts -- Shuffle init_opts order
      build: compel -- Drop double targeting
      build: Add export of sublevels and extra
      build: criu -- Drop host vars
      build: Move ARCH handling on toplevel
      build: Generate criu version from toplevel
      compel: Don't reclose files already closed
      compel: Add missing 32s support
      autofs: install -- Ship scripts/systemd-autofs-restart.sh
      build: uninstall -- Cleanup systemd-autofs-restart.sh script
      criu: pagemap-cache -- Fix map filling in greedy mode
      build: Add ability to generate gprof output
      build: Fix compel target on @all
      build: Don't call for compel execution on clean targets
      criu: pagemap-cache -- Drop off greedy mode

Dengguangxing (5):
      join-ns: add join-ns option to criu CLI and RPC
      join-ns: perform join_namespace according to join-ns opts
      join-ns: add join-ns zdtm test
      join-ns: Fix join-ns zdtm test
      add join-ns result check to zdtm

Dmitry Safonov (28):
      .gitignore: add compel/compel
      Dockerfile: add libc6-dev-i386 & gcc-multilib
      x86/build: generate syscalls-{64,32}.built-in.o
      cr-exec: add non-generated sys-exec-tbl for x86
      x86/pie: split parasite-head.S on {-32,-64} parts
      criu/pie: generate native.lib.a
      parasite-vdso: add casts from uint64_t
      pie.lib: generate compatible pie object files
      pie/vdso: add i386 trampoline
      parasite: refactor macros for compat/native usage
      pie: generate native and compat parasites
      core/x86: add compatible 32 register set
      x86/crtools: rework arch_task_compatible
      x86: add user_regs_native macro (optional)
      parasite-syscall: choose between native/compat blobs
      x86/crtools: add injected int 0x80 instruction code
      restorer: drop sigframe include
      arm/pie/build: do not produce relocatable parasite object
      .gitignore: update to recent changes
      compel: shuffle skeleton a bit
      compel: add per-arch handle-elf.c
      compel: define arch_is_machine_supported
      compel: fix build for ppc64 (typo)
      compel: do not pass DEFINES two times to HOSTCFLAGS
      compel: separate get_strings_section from __handle_elf
      compel: make output streams options
      compel: add error constants
      aarch64/pie/util-vdso: workaround for vdso_symbols relocation

Mike Rapoport (18):
      autofs: fix build on Fedora 22
      uffd: do not treat VDSO pages as lazy
      uffd: remove handling of VDSO pages
      uffd: increment uffd_copied_pages only in one place
      uffd: introduce uffd_handle_page
      uffd: add handling of zero pages
      ppc64le: fix build with UFFD
      Rename uffd_listen to cr_lazy_pages
      lazy-pages: always compile uffd.c
      lazy-pages: refactor unix socket initializaton
      lazy-pages: initialize process tree early
      UFFD related makefiles cleanup
      lazy-pages: introduce handle_user_fault
      lazy-pages: introduce lazy_pages_summary
      lazy-pages: introduce struct lazy_pages_info
      lazy-pages: use epoll instead of select
      lazy-pages: move most of lazy_pages_info initialization to ud_open
      lazy-pages: allow handling multiple processes

Pavel Emelyanov (9):
      unshare: Preparations and CLI option
      unshare: Support mntns
      unshare: Mount new proc
      unshare: Support pidns
      unshare: Define UNSHARE_MOUNT_PROC constant
      unshare: Check private remount error code
      uffd: Fix pr_debug format for vma start
      ns: Options join-ns and unshare are conflicting
      uffd: Tune makefile indentation

Stanislav Kinsburskiy (34):
      protobuf/mnt.proto: AutoFS type added
      devices: add support for /dev/autofs
      protobuf: autofs entry introduced
      autofs: parse fsinfo stage introduced
      autofs: dump fsinfo stage introduced
      files: new "used" files list introduced
      files: new dup_fdinfo() and dup_fle() helpers introduced
      pipes: export collect_one_pipe_ops() helper
      autofs: declare ioctl helpers and constants
      autofs: restore stage introduced
      mount: create target directory for AutoFS indirect mounts.
      zdtm: add autofs test
      zdtm.py: create "dev/autofs" root contruction
      check: "autofs" feature added
      cr-restore: move add_ns_shared_cb declaration to include/namespaces.h
      autofs: do not treat old kernel as error in autofs_parse()
      autofs: fix device id printf modifier on error path in autofs_mnt_open
      autofs: fix device id modifier on error path in autofs_mnt_open
      autofs: do not close NULL image
      autofs: free leaked AutofsEntry in autofs_dump_entry
      autofs: free leaked info in autofs_mount on error path
      autofs: free leaked opts in autofs_mount
      scripts: systemd-autofs-restart.sh added
      scripts: fix typo in binary path in systemd-autofs-restart.sh
      scripts: join pid namespace in systemd-autofs-restart.sh
      autofs: use temporary value for virtual pgrp on dump
      sources: fix pr_perror usage
      autofs: collect new pipe fd as used
      autofs: do not create dentries for indirect mount on bind-mounts
      scripts: save and restore target mount for autofs service
      scripts: do not use stat to discover fs type in systemd-autofs-restart.sh
      autofs: rework pipe search logic a bit
      autofs: support of "hidden" catatonic mounts
      scripts: fix mountinfo parsing in systemd-autofs-restart.sh

Tycho Andersen (2):
      fix typo
      proc parse: remember to free mnt entry if parse() fails


More information about the CRIU mailing list