No description
Find a file
Oleg Nesterov 07dcf0dbb6 restore/x86: restore_gpregs() needs to initialize ->ss as well
Before the recent "x86_64,signal: Fix SS handling for signals delivered
to 64-bit programs" kernel patch, sigreturn paths forgot to restore ->ss
after return from the signal handler.

Now that the kernel was fixed, restore_gpregs() has to initialize ->ss
too, it is no longer ignored.

Note: this is the minimal fix. In the long term we probably should not
dump/restore the segment registers at all. We can use sigcontext filled
by the target kernel and modify the general-purpose regs.

Reported-and-tested-by: Andrey Wagin <avagin@gmail.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Andrew Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-03-20 16:29:59 +03:00
arch restore/x86: restore_gpregs() needs to initialize ->ss as well 2015-03-20 16:29:59 +03:00
contrib Try to determine the bind mount file for dockerinit 2015-01-12 13:20:06 +03:00
Documentation doc: Remove -t from restore command 2015-03-19 13:18:13 +03:00
include image: open lazy images in img_raw_fd() 2015-03-16 17:17:04 +03:00
lib libcriu: add cr_errno support 2014-12-22 17:38:52 +03:00
pie pie: parasite -- Drop dangling \Tab 2015-03-13 14:33:16 +03:00
protobuf crit: Print IP addresses in pretty mode 2015-01-29 18:47:30 +03:00
pycriu crit: Print IP addresses in pretty mode 2015-01-29 18:47:30 +03:00
scripts travis: add python-ipaddr as a dep 2015-02-09 14:07:07 +03:00
test tests: Add more debug info to caps00 test 2015-03-18 22:41:11 +03:00
.gitignore crit: add --format hex option 2015-01-19 18:13:55 +04:00
.mailmap repo: Add mailmap file 2012-03-25 23:31:20 +04:00
.travis.yml travis: add python-ipaddr as a dep 2015-02-09 14:07:07 +03:00
action-scripts.c scripts: Exit early if no scripts passed 2014-11-14 15:51:28 +04:00
aio.c aio: Fix vma->start printing format on arm 2014-12-30 15:38:25 +03:00
bfd.c bfd: Don't leak image-open flags into bfdopen 2015-03-16 15:58:14 +03:00
cgroup.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
COPYING Add LGPL licence for library directory 2013-04-01 12:29:06 +04:00
cr-check.c check: Do not print "Looks good" message regardless of loglevel 2015-01-27 16:16:01 +03:00
cr-dedup.c page-read: Explicitly mark ENOENT with return code 2015-03-13 14:42:11 +03:00
cr-dump.c security: create separate security.h header 2015-02-10 16:53:54 +03:00
cr-errno.c cr-errno: initial commit 2014-12-19 18:58:46 +03:00
cr-exec.c dump: remove useless arguments from seize_task() 2014-11-07 17:14:54 +04:00
cr-restore.c Dismantle cgyard in non-detached restore mode. 2015-03-18 22:39:57 +03:00
cr-service.c security: create separate security.h header 2015-02-10 16:53:54 +03:00
cr-show.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
CREDITS Add the CREDITS file 2012-07-30 13:52:37 +04:00
crit crit: gather and parse arguments in a proper way 2015-02-09 14:08:22 +03:00
crtools crtools: rename binary to criu 2013-04-30 20:17:55 +04:00
crtools.c security: create separate security.h header 2015-02-10 16:53:54 +03:00
eventfd.c img: Rename fdset -> imgset 2014-09-30 21:48:10 +04:00
eventpoll.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
fifo.c img: Introduce the struct cr_img 2014-09-30 21:48:13 +04:00
file-ids.c files-ids: generate id-s accoding with mnt_id, st->st_dev and st->st_ino 2014-04-21 22:39:28 +04:00
file-lock.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
files-ext.c img: Introduce the struct cr_img 2014-09-30 21:48:13 +04:00
files-reg.c reg-files: skip size for O_APPEND|O_WRONLY files, v2 2015-03-20 16:29:37 +03:00
files.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
fsnotify.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
image-desc.c criu: add constants about user namespaces 2014-11-07 17:00:32 +04:00
image.c img: Don't create empty images 2015-03-16 15:58:32 +03:00
ipc_ns.c sysctl: Remove dead CTL_PRINT|_SHOW code 2015-01-27 16:18:27 +03:00
irmap.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
kcmp-ids.c kcmp: Fix ret code comparison 2014-04-22 12:51:15 +04:00
kerndat.c kerndat: Mark get_last_cap static 2015-01-23 20:19:09 +03:00
libnetlink.c nlk: Add error callback to do_rtnl_req 2015-01-22 18:54:37 +03:00
log.c log: chown log to current criu user 2015-02-10 16:54:33 +03:00
Makefile criu: Version 1.5 2015-03-02 15:37:01 +03:00
Makefile.config crtools: check for setproctitle_init 2014-09-02 16:14:39 +04:00
Makefile.crtools aio: Dump AIO rings 2014-12-26 18:13:36 +03:00
Makefile.inc install: install criu-service logrotate config 2014-02-18 12:39:50 +04:00
mem.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
mount.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
namespaces.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
net.c sockets: define NETLINK_SOCK_DIAG in sockets.h 2015-01-23 15:40:02 +03:00
netfilter.c iptables: use cr_system instead of system 2013-10-02 20:09:37 +04:00
page-pipe.c log: Use pr_quelled helper 2014-09-03 20:56:58 +04:00
page-read.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
page-xfer.c page-read: Explicitly mark ENOENT with return code 2015-03-13 14:42:11 +03:00
pagemap-cache.c pagemap-cache: Use page.h helpers 2014-02-21 16:29:41 +04:00
parasite-syscall.c aio: Dump AIO rings 2014-12-26 18:13:36 +03:00
pipes.c fd: Factor out inheriting FDs code 2015-01-12 14:46:51 +03:00
plugin.c plugin: Rework plugins API, v2 2014-09-03 20:48:36 +04:00
proc_parse.c bfd: Don't leak image-open flags into bfdopen 2015-03-16 15:58:14 +03:00
protobuf-desc.c criu: add constants about user namespaces 2014-11-07 17:00:32 +04:00
protobuf.c img: Don't create empty images 2015-03-16 15:58:32 +03:00
pstree.c img: Introduce empty images 2015-03-13 14:42:54 +03:00
ptrace.c ptrace: call wait only if PTRACE_SEIZE was successful 2015-02-24 21:44:23 +03: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 security: add cr_fchown 2015-02-10 16:54:31 +03:00
shmem.c page-read: Explicitly mark ENOENT with return code 2015-03-13 14:42:11 +03: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 img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
sk-inet.c Do not call listen() when SO_REUSEADDR is off 2015-02-16 13:18:32 +03:00
sk-netlink.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
sk-packet.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
sk-queue.c img: Introduce the struct cr_img 2014-09-30 21:48:13 +04:00
sk-tcp.c Do not call listen() when SO_REUSEADDR is off 2015-02-16 13:18:32 +03:00
sk-unix.c userns: save uid-s from a target userns (v2) 2014-11-07 17:15:45 +04:00
sockets.c sk: Restore sockets bufs via usernsd 2015-02-13 16:11:38 +04:00
stats.c img: Introduce the struct cr_img 2014-09-30 21:48:13 +04:00
string.c string: Add strlcat helper 2013-11-29 15:36:07 +04:00
sysctl.c sysctl: Remove dead CTL_PRINT|_SHOW code 2015-01-27 16:18:27 +03:00
sysfs_parse.c Ignore mnt_id value for AUFS file descriptors. 2015-02-09 14:07:40 +03:00
timerfd.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
tty.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
tun.c img: Remove O_OPT and COLLECT_OPTIONAL 2015-03-13 14:42:01 +03:00
util.c image: Add comments about VMA_AREA constants and drop FORCE_READ flag 2015-03-04 17:48:47 +03:00
uts_ns.c ns: Factor out namespace switching call 2014-09-30 21:54:11 +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