- 22 Jan, 2015 12 commits
-
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
For example: $ criu show stats-dump Error (crtools.c:468): Unable to handle more than one command $ ./criu show -f stats-dump dump: { freezing_time: 626 frozen_time: 24762 memdump_time: 2696 memwrite_time: 1007 pages_scanned: 1108 pages_skipped_parent: 0 pages_written: 28 irmap_resolve: 0 } Reported-by:
Thouraya TH <thouraya87@gmail.com> Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
If shm->delta = MAX_DELTA and we set shm->stop to 1, the child can exit before the parent adds MAX_DELTA to shm->delta. parent child shm->stop = 1 if (shm->stop == 1 && shm->delta == MAX_DELTA) break shm->delta += MAX_DELTA Cc: Konstantin Neumoin <kneumoin@parallels.com> Reported-by:
Konstantin Neumoin <kneumoin@parallels.com> Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
This is the continuation -- check relevant userns features in criu check. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Right now we state that CRIU works on 3.11 and above kernels and, at the same time, have support for a couple of new features like aio, tun, timerfd etc. available in later kernels. Since these new features do not break generic operations we do not require them in the kernel strictly. However, in the zdtm tests it's very important to know exactly what can and what cannot be tested. Right now this is done in a tough manner -- if the kernel is not 3.11 or criu check fails for _any_ reason we treat the kernel as being "bad" and throw out a set of tests. I propose to test some individual features and form the list of tests in a more fine-grained manner. This patch only fixes the AIO, mnt_id, tun and posix-timers tests. Next I will add checks and fixes for user-namespaces tests. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
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 1 commit
-
-
Mark O'Neill authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-