No description
Find a file
Dmitry Safonov 5141d3238a cr-exec: check syscall's number right before injecting it
So, I made a mistake in find_syscall: it can't use arch_task_compatible
to find out in which mode the application is (native/compat).
The reason is that arch_task_compatible uses PTRACE_GETREGSET.
And at the moment of find_syscall we haven't yet seized the task.

In this patch I move syscall's number check right before injecting
a syscall, where we have parasite_ctl with all needed information
about task's mode.
This makes error-path for wrong syscall number longer and subtler
(includes curing now), but I think it's a corner-case, so as
it makes error-less path to execute_syscall shorter and without
additional ptrace syscalls, it's better.

Reported-by: Andrew Vagin <avagin@virtuozzo.com>
Cc: Andrew Vagin <avagin@virtuozzo.com>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-14 23:58:07 +03:00
compel compel: print nr of unsupported relocation 2017-03-14 21:03:30 +03:00
contrib scripts/install-debian-packages: add libnet-dev 2017-01-16 11:04:49 +03:00
coredump coredump: Rename dir to coredump 2016-06-28 13:04:58 +03:00
crit crit/decode: set default opts['nopl'] to False 2016-05-30 13:47:54 +03:00
criu cr-exec: check syscall's number right before injecting it 2017-03-14 23:58:07 +03:00
Documentation .gitignore: update to recent changes 2017-03-14 21:03:22 +03:00
images restore/x86: call int80 for compat sigaction restore 2017-03-14 23:58:06 +03:00
include/common files: Fix test and set endianess problem 2017-02-06 14:09:15 +03:00
lib lib Makefiles: integrate 2017-03-06 20:44:07 +03:00
scripts travis-ci: run compel tests on build stage 2017-03-14 21:03:30 +03:00
soccr soccr: add one more test to check libsoccr_save/libsoccr_restore 2017-02-01 18:41:29 +03:00
test zdtm: add compatible tests building 2017-03-14 23:58:06 +03:00
.gitignore .gitignore: update to recent changes 2017-03-14 21:03:22 +03:00
.mailmap repo: Add mailmap file 2012-03-25 23:31:20 +04:00
.travis.yml travis: execute tests on Alpine 2017-03-02 00:19:03 +03:00
COPYING COPYING: fix a typo in a preamble 2016-08-11 16:18:43 +03:00
CREDITS Add the CREDITS file 2012-07-30 13:52:37 +04:00
INSTALL.md Makefile.install: rm unused vars/target 2017-02-06 13:48:49 +03:00
Makefile Makefile: add .FORCE target 2017-03-14 21:03:30 +03:00
Makefile.config make: Add .config file processing (v3) 2016-11-03 20:49:13 +03:00
Makefile.install Makefile.install: fix uninstall target 2017-03-06 20:44:08 +03:00
Makefile.versions compel: Initial commit for standalone tool 2017-03-14 21:03:20 +03:00
README.md Add ascciinema tour on basic criu features. 2016-06-16 16:37:06 +03:00

CRIU (Checkpoint and Restore in Userspace)

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:

A video tour on basic CRIU features

CRIU introduction

How to contribute