No description
Find a file
Tikhomirov Pavel e01dc7faa6 v2 mem: if no parent image persists, can't rely on it
here was bug cause if e.g.: iterative snapshots are made and
between two of them new process in process tree was created,
it can have pages which are non dirty, and won't save them
into image. but there is no parent image for it.

pages which are non soft-dirty appear if process with some pages
in non dirty state forks, child will inherit those pte's
and if child don't write to those pages, they will be still in non
soft-dirty state when next dump comes.

also this bug was not catched because of error in zdtm, look 3/3

v2: simplify, add more justification in commit message.

Signed-off-by: Tikhomirov Pavel <snorcht@gmail.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2014-04-18 13:50:06 +04:00
arch cr: implemented the support for the AArch64 architecture 2014-04-11 15:19:01 +04:00
Documentation Documentation: remove the linker command line switch --static from the final step described in the cross-compilation guide 2014-03-11 22:47:38 +04:00
include mount: save relative path in mi->mountpoint 2014-04-17 12:05:58 +04:00
lib lib: criu -- Test for nil on malloc/strdup calls 2014-04-01 11:23:21 +04:00
pie util-fd: print errors from send_fds 2014-04-09 13:24:40 +04:00
protobuf rlimits: Move entries from top-core into task-core 2014-04-17 12:01:08 +04:00
scripts make: config -- Add testing if we have libbsd installed 2014-03-26 01:44:23 +04:00
test zdtm: add --track-mem to final snapshot 2014-04-14 18:37:55 +04:00
.gitignore git: Don't track *.so files 2013-08-29 14:48:17 +04:00
.mailmap repo: Add mailmap file 2012-03-25 23:31:20 +04:00
COPYING Add LGPL licence for library directory 2013-04-01 12:29:06 +04:00
cr-check.c check: Collect mount infos before checking 2014-01-04 23:45:09 +04:00
cr-dedup.c v2 page-read: rework open_page_read to use in shmem restore 2014-03-18 11:48:58 +04:00
cr-dump.c rlimits: Move entries from top-core into task-core 2014-04-17 12:01:08 +04:00
cr-exec.c criu: Several formatting fixes 2014-01-14 09:33:19 +04:00
cr-restore.c mount: open_mount uses __open_mountpoint instead of own logic 2014-04-17 12:03:15 +04:00
cr-service.c criu: Add exec-cmd option (v3) 2014-03-25 01:20:02 +04:00
cr-show.c rlimit: Move CR_FD_RLIMIT out of _CR_FD_TASK, v2 2014-03-14 15:44:51 +04:00
CREDITS Add the CREDITS file 2012-07-30 13:52:37 +04:00
crtools crtools: rename binary to criu 2013-04-30 20:17:55 +04:00
crtools.c criu: Add exec-cmd option (v3) 2014-03-25 01:20:02 +04:00
eventfd.c anon-inode: Don't readlink fd/fd multiple times 2014-02-02 22:14:29 +04:00
eventpoll.c files: Rework select_ps_list fdsec ops callback 2014-02-05 16:17:59 +04:00
fifo.c fifo: Don't lookup reg path twice 2014-02-07 13:55:27 +04:00
file-ids.c files: Cache special file IDs 2014-02-05 16:18:16 +04:00
file-lock.c image: Add O_OPT when trying to open optional image files 2014-03-17 14:21:21 +04:00
files-ext.c files-ext: Mark dump callback as static 2014-02-24 17:30:42 +04:00
files-reg.c servicefd: add a service fd for current root 2014-04-17 12:03:11 +04:00
files.c proc_parse: parse mnt_id from /proc/PID/fdinfo/FD 2014-04-09 16:43:50 +04:00
fsnotify.c fsnotify: Fix nil dereference in pre_dump_one_fanotify 2014-03-11 22:20:13 +04:00
image-desc.c mount: rename TMPFS_MAGIC into TMPFS_IMG_MAGIC 2014-02-28 13:26:48 +04:00
image.c image: open_image_at -- Add O_OPT flag 2014-03-14 15:43:49 +04:00
ipc_ns.c crtools: move cr_options in a separate header 2013-11-06 18:17:52 +04:00
irmap.c servicefd: add a service fd for current root 2014-04-17 12:03:11 +04:00
kcmp-ids.c x86: moved x86-specific files into the directory arch/x86. 2013-01-09 17:02:47 +04:00
kerndat.c mount: detect the newinstance option for devpts (v2) 2014-04-08 15:32:35 +04:00
libnetlink.c netlink: Lower netlink error report log level 2013-07-04 15:49:02 +04:00
log.c log: Don't override -v0 with -v2 2014-02-04 20:54:25 +04:00
Makefile Make sure logrotate directory exists 2014-04-11 15:15:18 +04:00
Makefile.config make: config -- Add testing if we have libbsd installed 2014-03-26 01:44:23 +04:00
Makefile.crtools vdso: share the vDSO proxy initialization between all architectures 2014-03-19 21:08:55 +04:00
Makefile.inc install: install criu-service logrotate config 2014-02-18 12:39:50 +04:00
mem.c v2 mem: if no parent image persists, can't rely on it 2014-04-18 13:50:06 +04:00
mount.c mount: save relative path in mi->mountpoint 2014-04-17 12:05:58 +04:00
namespaces.c namespaces: Use long value to check for UINT_MAX 2014-04-09 15:26:19 +04:00
net.c criu: Add exec-cmd option (v3) 2014-03-25 01:20:02 +04:00
netfilter.c iptables: use cr_system instead of system 2013-10-02 20:09:37 +04:00
page-pipe.c page-pipe: Update format for PAGE_SIZE 2014-02-21 23:28:35 +04:00
page-read.c page-read: remove redundant initialisation 2014-03-21 08:38:18 +04:00
page-xfer.c page-xfer: make err-message reflect what realy happen 2014-04-14 15:16:05 +04:00
pagemap-cache.c pagemap-cache: Use page.h helpers 2014-02-21 16:29:41 +04:00
parasite-syscall.c posix-timers: Helper for freeing proc parsed data 2014-04-17 12:01:02 +04:00
pipes.c crtools: move pid_rst_prio to pid.h 2013-11-06 18:18:12 +04:00
plugin.c plugin: Use sizeof(*ptr) in cr_lib_load 2014-01-16 22:09:42 +04:00
proc_parse.c mount: save relative path in mi->mountpoint 2014-04-17 12:05:58 +04:00
protobuf-desc.c files: add ability to set callbacks for files (v7) 2013-12-20 16:07:38 +04:00
protobuf.c image: Add O_OPT when trying to open optional image files 2014-03-17 14:21:21 +04:00
pstree.c rlimits: Move entries from top-core into task-core 2014-04-17 12:01:08 +04:00
ptrace.c unseize: Don't print error when unseizing stopped task into stopped state 2013-12-20 23:22:04 +04:00
rbtree.c code: Fix spaced indentation where found 2012-08-11 21:36:03 +04:00
README Update README file so that it looks more informative on github front page 2014-01-24 20:42:08 +04:00
rst-malloc.c whitespace-at-eol cleanup 2013-12-12 10:00:45 +04:00
sd-daemon.c systemd socket activation support 2013-12-12 09:58:50 +04:00
sd-daemon.h systemd socket activation support 2013-12-12 09:58:50 +04:00
security.c headers: Drop uintX_t usage 2013-12-12 10:03:07 +04:00
shmem.c v2 dedup: make bunched auto-deduplication on restore for shmem 2014-03-18 11:48:59 +04:00
sigframe.c sigframe: cast the pointer to the field ucontext::uc_sigmask to k_rtsigset_t 2014-04-08 15:36:09 +04:00
signalfd.c anon-inode: Don't readlink fd/fd multiple times 2014-02-02 22:14:29 +04:00
sk-inet.c headers: Drop uintX_t usage 2013-12-12 10:03:07 +04:00
sk-netlink.c crtools: move pid_rst_prio to pid.h 2013-11-06 18:18:12 +04:00
sk-packet.c vma: Turn embeded VmaEntry on vma_area into pointer 2014-02-04 11:44:01 +04:00
sk-queue.c crtools: move pid_rst_prio to pid.h 2013-11-06 18:18:12 +04:00
sk-tcp.c tcp: restore the boundary between sent and unsent data 2013-11-14 17:15:44 +04:00
sk-unix.c servicefd: add a service fd for current root 2014-04-17 12:03:11 +04:00
sockets.c headers: Use fs-magic.h 2014-02-28 13:08:00 +04:00
stats.c stats: Fix restore pages stats 2014-02-04 14:03:10 +04:00
string.c string: Add strlcat helper 2013-11-29 15:36:07 +04:00
sysctl.c sysctl: Don't forget to close fds 2013-04-05 08:23:17 +04:00
tty.c files: Rework select_ps_list fdsec ops callback 2014-02-05 16:17:59 +04:00
tun.c crtools: move cr_options in a separate header 2013-11-06 18:17:52 +04:00
util.c crtools: close all desriptors only for the root task 2014-04-09 15:50:40 +04:00
uts_ns.c crtools: move pid_rst_prio to pid.h 2013-11-06 18:18:12 +04:00
vdso-stub.c vdso: share the vDSO proxy initialization between all architectures 2014-03-19 21:08:55 +04:00
vdso.c vdso: share the vDSO proxy initialization between all architectures 2014-03-19 21:08:55 +04:00

criu
====

An utility to checkpoint/restore tasks. Using this tool, you can
freeze a running application (or part of it) and checkpoint it to
a hard drive as a collection of files. You can then use the files
to restore and run the application from the point it was frozen
at. The distinctive feature of the CRIU project is that it is
mainly implemented in user space.

The project home is at http://criu.org

Pages worth starting with are
* Kernel configuration, compilation, etc: http://criu.org/Installation
* A simple example of usage: http://criu.org/Simple_loop
* More sophisticated example with graphical app: http://criu.org/VNC