[CRIU] [PATCH 00/32] tools, cpt2 introduction, v1

Cyrill Gorcunov gorcunov at openvz.org
Sat Mar 30 17:42:38 EDT 2013


Hi guys, I would like you to take a glance on extremelly draft
and early initial version of cpt2 tool which idea of is to convert
openvz images to criu format.

Disclamer: this set does not provide complete conversion neither
it provide early alfa stage of a tool, but rather some code snippets
which are subject to heavy change in a future and to share code early.
I've tested it with my own quite trivial container which were running
endless

	1: jmp 1b

instruction. The reason for that is lack of vdso area migration (which
is tricky task on its own, because we need to jump between different
kernel versions), thus I don't have timers, neither I have net related
stuff, ipc and etc.

So any comments on early code would be highly appreciated.
Thanks!

Cyrill Gorcunov (32):
  make: Don't generate tags/cscope for tools/ and test/
  pie: restorer -- Don't fail if no futex provided
  mnt: Add simfs entry to a list of supported fs
  tools: Introduce cpt2 sourceless directory
  tools: cpt2 - Add bare entry routine
  tools: cpt2 -- Add a bunch of headers needed
  tools: cpt2 -- Introduce exportfs helpers
  tools: cpt2 -- Introduce io operations
  tools: cpt2 -- Itroduce fdset operations
  tools: cpt2 -- Add structures to parse OpenVZ image format
  tools: cpt2 -- Introduce program context and image helpers
  tools: cpt2 -- Introduce protobuf helpers
  tools: cpt2 -- Introduce "object" abstraction
  tools: cpt2 -- Start reading dumpfile
  tools: cpt2 -- Read files, fds, inodes, fs related info
  tools: cpt2 -- Add signal handlers reading scaffolds
  tools: cpt2 -- Read inotify entries
  tools: cpt2 -- Read vfs mount points
  tools: cpt2 -- Read mm/vma data from dumpfile
  tools: cpt2 -- Add FPU header to carry xsave frames
  tools: cpt2 -- Add reading of tasks
  tools: cpt2 -- Add reading of sockets
  tools: cpt2 -- Introduce convert() routine
  tools: cpt2 -- Read all entries we understand
  tools: cpt2 -- Intrdoce "write" routines for files
  tools: cpt2 -- Introduce write_sighandlers routine
  tools: cpt2 -- Add "write" routines for virtual memory areas
  tools: cpt2 -- Add writing of pstree entries
  tools: cpt2 -- Add writing of per-task images
  tools: cpt2 -- Add writing stubs
  tools: cpt2 -- Add writing shmem entries
  tools: cpt2 -- Add writing of inventory file

 Makefile                                |    4 +-
 mount.c                                 |    1 +
 pie/restorer.c                          |    2 +-
 protobuf/mnt.proto                      |    1 +
 tools/cpt2/Documentation/.gitattributes |    1 +
 tools/cpt2/Documentation/.gitignore     |    3 +
 tools/cpt2/Documentation/Makefile       |   18 +
 tools/cpt2/Documentation/cpt2.txt       |   34 +
 tools/cpt2/Makefile                     |  121 ++
 tools/cpt2/README.md                    |    4 +
 tools/cpt2/src/Makefile                 |   23 +
 tools/cpt2/src/context.c                |   54 +
 tools/cpt2/src/convert.c                |  173 +++
 tools/cpt2/src/exportfs.c               |   51 +
 tools/cpt2/src/fdset.c                  |   49 +
 tools/cpt2/src/files.c                  |  571 ++++++++++
 tools/cpt2/src/image.c                  |  143 +++
 tools/cpt2/src/include/bug.h            |   24 +
 tools/cpt2/src/include/compiler.h       |  143 +++
 tools/cpt2/src/include/context.h        |   37 +
 tools/cpt2/src/include/convert.h        |    6 +
 tools/cpt2/src/include/cpt-image.h      | 1829 +++++++++++++++++++++++++++++++
 tools/cpt2/src/include/cpt2.h           |   17 +
 tools/cpt2/src/include/err.h            |   53 +
 tools/cpt2/src/include/exportfs.h       |   66 ++
 tools/cpt2/src/include/fdset.h          |   31 +
 tools/cpt2/src/include/files.h          |   57 +
 tools/cpt2/src/include/fpu.h            |  102 ++
 tools/cpt2/src/include/hash.h           |   73 ++
 tools/cpt2/src/include/hashtable.h      |   90 ++
 tools/cpt2/src/include/image.h          |  108 ++
 tools/cpt2/src/include/inotify.h        |   30 +
 tools/cpt2/src/include/io.h             |   46 +
 tools/cpt2/src/include/list.h           |  423 +++++++
 tools/cpt2/src/include/log.h            |   54 +
 tools/cpt2/src/include/magicfs.h        |   35 +
 tools/cpt2/src/include/memory.h         |   38 +
 tools/cpt2/src/include/mm.h             |  105 ++
 tools/cpt2/src/include/net.h            |   21 +
 tools/cpt2/src/include/ns.h             |   35 +
 tools/cpt2/src/include/obj.h            |  223 ++++
 tools/cpt2/src/include/protobuf.h       |   61 ++
 tools/cpt2/src/include/read.h           |   13 +
 tools/cpt2/src/include/sig.h            |   26 +
 tools/cpt2/src/include/task.h           |   31 +
 tools/cpt2/src/include/types.h          |  128 +++
 tools/cpt2/src/inotify.c                |  199 ++++
 tools/cpt2/src/io.c                     |   72 ++
 tools/cpt2/src/main.c                   |   79 ++
 tools/cpt2/src/mm.c                     |  752 +++++++++++++
 tools/cpt2/src/net.c                    |   80 ++
 tools/cpt2/src/ns.c                     |  139 +++
 tools/cpt2/src/obj.c                    |  270 +++++
 tools/cpt2/src/protobuf.c               |  201 ++++
 tools/cpt2/src/read.c                   |  303 +++++
 tools/cpt2/src/sig.c                    |  172 +++
 tools/cpt2/src/task.c                   |  938 ++++++++++++++++
 57 files changed, 8360 insertions(+), 3 deletions(-)
 create mode 100644 tools/cpt2/Documentation/.gitattributes
 create mode 100644 tools/cpt2/Documentation/.gitignore
 create mode 100644 tools/cpt2/Documentation/Makefile
 create mode 100644 tools/cpt2/Documentation/cpt2.txt
 create mode 100644 tools/cpt2/Makefile
 create mode 100644 tools/cpt2/README.md
 create mode 100644 tools/cpt2/src/Makefile
 create mode 100644 tools/cpt2/src/context.c
 create mode 100644 tools/cpt2/src/convert.c
 create mode 100644 tools/cpt2/src/exportfs.c
 create mode 100644 tools/cpt2/src/fdset.c
 create mode 100644 tools/cpt2/src/files.c
 create mode 100644 tools/cpt2/src/image.c
 create mode 100644 tools/cpt2/src/include/bug.h
 create mode 100644 tools/cpt2/src/include/compiler.h
 create mode 100644 tools/cpt2/src/include/context.h
 create mode 100644 tools/cpt2/src/include/convert.h
 create mode 100644 tools/cpt2/src/include/cpt-image.h
 create mode 100644 tools/cpt2/src/include/cpt2.h
 create mode 100644 tools/cpt2/src/include/err.h
 create mode 100644 tools/cpt2/src/include/exportfs.h
 create mode 100644 tools/cpt2/src/include/fdset.h
 create mode 100644 tools/cpt2/src/include/files.h
 create mode 100644 tools/cpt2/src/include/fpu.h
 create mode 100644 tools/cpt2/src/include/hash.h
 create mode 100644 tools/cpt2/src/include/hashtable.h
 create mode 100644 tools/cpt2/src/include/image.h
 create mode 100644 tools/cpt2/src/include/inotify.h
 create mode 100644 tools/cpt2/src/include/io.h
 create mode 100644 tools/cpt2/src/include/list.h
 create mode 100644 tools/cpt2/src/include/log.h
 create mode 100644 tools/cpt2/src/include/magicfs.h
 create mode 100644 tools/cpt2/src/include/memory.h
 create mode 100644 tools/cpt2/src/include/mm.h
 create mode 100644 tools/cpt2/src/include/net.h
 create mode 100644 tools/cpt2/src/include/ns.h
 create mode 100644 tools/cpt2/src/include/obj.h
 create mode 100644 tools/cpt2/src/include/protobuf.h
 create mode 100644 tools/cpt2/src/include/read.h
 create mode 100644 tools/cpt2/src/include/sig.h
 create mode 100644 tools/cpt2/src/include/task.h
 create mode 100644 tools/cpt2/src/include/types.h
 create mode 100644 tools/cpt2/src/inotify.c
 create mode 100644 tools/cpt2/src/io.c
 create mode 100644 tools/cpt2/src/main.c
 create mode 100644 tools/cpt2/src/mm.c
 create mode 100644 tools/cpt2/src/net.c
 create mode 100644 tools/cpt2/src/ns.c
 create mode 100644 tools/cpt2/src/obj.c
 create mode 100644 tools/cpt2/src/protobuf.c
 create mode 100644 tools/cpt2/src/read.c
 create mode 100644 tools/cpt2/src/sig.c
 create mode 100644 tools/cpt2/src/task.c

-- 
1.8.1.4


More information about the CRIU mailing list