No description
Find a file
Pavel Emelyanov 8801f59615 mem: Protobuf format for page dumps
Since now we drain pages out of parasite, we can invent any format for
page dumps. Let is be ... prorobuf one! :)

Another thing to keep in mind, is that we're about to use splices and
implement iterative migration, so it's better to have actual pages be
page-aligned in the image.

And -- backward compatibility. That said the new format is:

1. pagemap-... file which contains a header (currently with a ID of
   the image with pages, see below) and an array of <nr_pages:vaddr>
   pairs. The first value means "how many pages to take from the
   file with pages (see below)" and the second -- where in the task
   address space to put them. Simple.

2. pages-... file which containes only pages one by one (thus aligned
   as we want).

This patch breaks backward compatibility (old images with pages wil
be restored and then crash). Need to do it before v0.5 release.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2013-03-14 18:16:41 +04:00
arch arch: Add mssing \Newline to get_task_regs message and print pid as well 2013-03-06 00:30:25 +04:00
Documentation docs: crtools -- Use bold format for parameters 2013-02-18 18:42:07 +04:00
include mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
pie mem: Drain memory from parasite before dumping it into file 2013-03-01 20:13:11 +04:00
protobuf mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
scripts make: Provide mandatory options in cflags-y variable 2013-02-23 00:36:36 +04:00
test zdtm: make datagen/datachk faster for big chunks 2013-03-06 00:34:02 +04:00
.gitignore make: pie -- Switch to a new scheme 2013-02-18 18:10:45 +04:00
.mailmap repo: Add mailmap file 2012-03-25 23:31:20 +04:00
COPYING Add COPYING file 2011-12-05 14:11:05 +04:00
cr-check.c check: Check for pipe return value in check_unaligned_vmsplice 2013-02-22 15:56:50 +04:00
cr-dump.c mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
cr-exec.c vma: Introduce list-of-vmas object 2013-03-01 20:11:51 +04:00
cr-restore.c mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
cr-show.c mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
CREDITS Add the CREDITS file 2012-07-30 13:52:37 +04:00
crtools.c make: Generate crtools version from Makefile definition 2013-02-11 19:24:06 +04:00
eventfd.c cr: generalized format strings 2013-01-16 19:20:08 +04:00
eventpoll.c cr: generalized format strings 2013-01-16 19:20:08 +04:00
fifo.c files: pass a file descriptor on an fdinfo image instead of cr_fdset 2013-01-11 14:47:09 +04:00
file-ids.c x86: moved x86-specific files into the directory arch/x86. 2013-01-09 17:02:47 +04:00
file-lock.c locks: Move dump_task_file_locks into file-locks.c 2013-02-08 02:58:10 +04:00
files-reg.c cr: generalized format strings 2013-01-16 19:20:08 +04:00
files.c files: Move dump_task_files into files.c 2013-02-08 02:54:24 +04:00
fsnotify.c fsnotify: Don't fail on old versions where no inotify/fanotify image present 2013-01-17 19:20:41 +04:00
image.c mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
ipc_ns.c ipc: restore IPC objects credentials 2013-01-17 16:00:48 +04:00
kcmp-ids.c x86: moved x86-specific files into the directory arch/x86. 2013-01-09 17:02:47 +04:00
libnetlink.c libnetlink: Make sure there is no error happened when dumping is done 2012-11-06 13:41:36 +04:00
log.c log: Add generic __print_on_level helper 2013-01-14 14:26:18 +04:00
Makefile make: Provide mandatory options in cflags-y variable 2013-02-23 00:36:36 +04:00
Makefile.crtools page-pipe: Introduce object to collect pages within 2013-03-01 20:12:58 +04:00
mount.c ns: Introduce ns descriptors 2013-01-15 23:24:01 +04:00
namespaces.c rst: Evaluate per-task clone mask early 2013-01-19 01:16:19 +04:00
net.c net: Do not BUG() if unsupported link type met 2013-02-11 17:14:20 +04:00
netfilter.c x86: moved x86-specific files into the directory arch/x86. 2013-01-09 17:02:47 +04:00
page-pipe.c mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
parasite-syscall.c mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
pipes.c cr: use the length modifier %z to print an integer of the type size_t 2013-01-18 11:41:38 +04:00
proc_parse.c vma: Keep track of lonest vma in list and sum of its lengths 2013-03-01 20:12:33 +04:00
protobuf.c mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
pstree.c pstree: Add general core_entry_free helper 2013-02-22 15:41:27 +04:00
ptrace.c x86: moved x86-specific files into the directory arch/x86. 2013-01-09 17:02:47 +04:00
rbtree.c code: Fix spaced indentation where found 2012-08-11 21:36:03 +04:00
README Drop kernel patching from README 2012-01-29 16:26:36 +04:00
shmem.c mem: Protobuf format for page dumps 2013-03-14 18:16:41 +04:00
signalfd.c files: pass a file descriptor on an fdinfo image instead of cr_fdset 2013-01-11 14:47:09 +04:00
sk-inet.c protobuf: cast the result of the macro pb_repeated_size to size_t 2013-01-18 11:41:43 +04:00
sk-packet.c cr: use the length modifier %z to print an integer of the type size_t 2013-01-18 11:41:38 +04:00
sk-queue.c x86: moved x86-specific files into the directory arch/x86. 2013-01-09 17:02:47 +04:00
sk-tcp.c check: Check for ability to get tcp timestamp 2013-02-14 20:27:55 +04:00
sk-unix.c sk-unix: dump/restore a file permissions 2013-01-30 03:28:01 +04:00
sockets.c sk: Fail is SO_BINDTODEVICE and SO_GET_FILTER are missing 2013-02-20 13:32:20 +04:00
sysctl.c cr: generalized format strings 2013-01-16 19:20:08 +04:00
tty.c tty: require stdin to be a terminal only if shell_job is set 2013-01-22 22:45:31 +04:00
util.c cr: use the length modifier %z to print an integer of the type size_t 2013-01-18 11:41:38 +04:00
uts_ns.c ns: Introduce ns descriptors 2013-01-15 23:24:01 +04:00

crtools
=======

An utility to checkpoint/restore tasks.

Some code snippets are borrowed from

 - Linux kernel (http://kernel.org/)
 - git (http://git-scm.com/)
 - kvm-tools (https://github.com/penberg/linux-kvm)
 - ptrace-parasite (https://code.google.com/p/ptrace-parasite/)

Many thanks to these projects.

Licensed under GPLv2 (http://www.gnu.org/licenses/gpl-2.0.txt)