- 22 Jan, 2015 6 commits
-
-
Pavel Emelyanov authored
There was a problem with diag modules, that were auto-loaded on dump and put some data into uevent sockets thus causing the dump to fail on that socket. The solution that time was to call modprobe in advance to make sure the diag modules are there. This turned out to be not nice solution as modprobe may fail if the module is missing and the requred functionality is built-in. To handle this for diag stuff it is mush faster and more reliable to ping the kernel with simple diag request and check that it reqched the required module. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
In the next patch we will need to care about the exact error reported by the kernel, so add the error callback for this. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Instead of generating intermideate files with .SECONDARY helper lets calculate proto deps on the fly. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
This reverts commit 490ca718 to the 2749d9e6 fixes the problem the other (proper) way. Conflicts: sysfs_parse.c Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Saied Kazemi authored
This patch reworks fixup_aufs_vma_fd() to let symbolic links in /proc/<pid>/map_files that are not pointing to AUFS branch names follow the non-AUFS applcation logic. The use case that prompted this commit was an application mapping /dev/zero as shared and writeable which shows up in map_files as: lrw------- ... 7fc5c5a5f000-7fc5c5a60000 -> /dev/zero (deleted) If the AUFS support code reads the link, it will have to strip off the " (deleted)" string added by the kernel but core CRIU code already does this. Signed-off-by:
Saied Kazemi <saied@google.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 20 Jan, 2015 2 commits
-
-
Ruslan Kuprieiev authored
Currently we run into lots of race conditions when building in multithreded mode. Reported-by: Mr Jenkins Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Acked-by:
Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 19 Jan, 2015 7 commits
-
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Pavel reported that decimal values for some fields are hard to read, because people used to see hex values in there. Unfortunately, json doesn't support hex representation of integers, so we can only store them as hex strings. Not all field need to be represented as hex strings, so this set introduces a custom field option called "criu" to use in our proto files. One should use [(criu).hex = true] to mark which field should be represented as a hex string. pb2dict module from pycriu package will look into field options and if he finds that criu.hex is set to True, it will convert such field to/from hex string. Though, such behaviour is optional and user can request it by specifying --format hex when calling crit decode("crit encode" in its turn, detects such fields automatically and doesn't require any special cmdline options to be set). We need our proto files to compile with both protoc and protoc-c compilers, which requires creating google/protobuf directory with a symlink to /usr/include/google/protobuf/ descriptor.proto to make protoc-c and generated c files happy. Reported-by:
Pavel Emelyanov <xemul@parallels.com> Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Saied Kazemi authored
The code that fixes up AUFS pathnames associated with vma entries (see commit d8b41b65) should handle cases where an entry does not expose the branch pathname (e.g., pointing to a device like /dev/zero). Signed-off-by:
Saied Kazemi <saied@google.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 15 Jan, 2015 2 commits
-
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Currently we are handling conversion in the simplest way, by just parsing protobuf text format representation of pb message, splitting string in half and storing values wrapped in ""-s in python dict. Which leads to a bunch of errors, like, for example, when converting bytes fields. It also doesn't handle types properly. This patch introduces a proper way to handle pb<->json conversion by iterating through pb fields and properly storing them in dict or properly extracting values from dict. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 14 Jan, 2015 15 commits
-
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
pagemap.img is the special one, as it starts with an entry of pagemap_head type and is followed by entries of pagemap_entry type. Currently we treat pagemap as if pagemap_head is a payload and pagemap_entry's are an extra, which is wrong. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Before: { "magic" : "FOO", "entries" : [ { "payload" : { "foo" : "bar", "bar" : "foo" }, "extra" : "abc" }, { "payload" : { "foo" : "bar", "bar" : "foo" }, "extra" : "abc" } ] } After: { "magic" : "FOO", "entries" : [ { "foo" : "bar", "bar" : "foo" "extra" : "abc" }, { "foo" : "bar", "bar" : "foo" "extra" : "abc" } ] } We don't have any fields named "extra" in our pb msgs and it is not likely that we will ever have one, so there is no reason to worry about that. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Test steps: 1) generate img files by dumping loop.sh 2) convert img files to json files 3) convert json files to img files 4) cmp original and produces img files It also uses i/o redirection and --format nice options to check if they work properly. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
install-crit uses scripts/crit-setup.py install --prefix=$(DESTDIR) to act the way the install target expects it too. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
This is a small python scipt that uses distutils to install crit script and pycriu package. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
crit is a python script that helps user to manipulate criu images. For now, it can only convert criu images to\from human-readable format using pycriu.images module. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
pycriu is a python package, that, for now, consists of rpc module and images package. rpc module contains data structures for interacting with CRIU RPC. images package contains methods for loading\dumping criu images. See a big comment below in pycriu/images/images.py file. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
This script is needed to generate python module from include/magic.h file, that contains dicts with magic numbers that we put into our criu *.img files. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 13 Jan, 2015 1 commit
-
-
Pavel Emelyanov authored
The newer cleanups in fd inherit code need every file-desc to have non-NULL ops. This hunk was lost in tty code in the very beginning. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 12 Jan, 2015 7 commits
-
-
Mark O'Neill authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Saied Kazemi authored
When restoring a pair of veth devices that had one end inside a namespace or container and the other end outside, CRIU creates a new veth pair, puts one end in the namespace/container, and names the other end from what's specified in the --veth-pair IN=OUT command line option. This patch allows for appending a bridge name to the OUT string in the form of OUT@<BRIDGE-NAME> in order for CRIU to move the outside veth to the named bridge. For example, --veth-pair eth0=veth1@br0 tells CRIU to name the peer of eth0 veth1 and move it to bridge br0. This is a simple and handy extension of the --veth-pair option that obviates the need for an action script although one can still do the same (and possibly more) if they prefer to use action scripts. Signed-off-by:
Saied Kazemi <saied@google.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Christopher Covington authored
The stack handling in the RUN_CLONE_RESTORE_FN macro for AArch64 was incorrect, resulting in a segfault of the restored process. With this change the pthread00 test case (and probably others) runs to completion and passes. Signed-off-by:
Christopher Covington <cov@codeaurora.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
We have a nasty issue with it. Current code allocates these entries in shremap area one by one. We do NOT allocate any OTHER entries in this region, but if we will this array will be spoiled. Fortunately we no longer need shmem-infos as plain array, neither we need one in restorer. So just turn this into plain shared objects and collect them in a list. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
The struct and find routine used to be use by restorer code. Now the former fully uses vmas and fd opened, so we can move the code into .c file not to spoil global namespace. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-