- 28 Feb, 2014 6 commits
-
-
Andrey Vagin authored
Use futex for synchronization instead of spinning on atomic variables. 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>
-
Andrey Vagin authored
Currenty a parent can go far away from child and we will need to wait too long for checking results. This pach limits delta to [MIN_DELTA, 2 * MIN_DELTA]. Thi patch should fix current errors for the CRIU-iter job in Jenkins. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Acked-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Signed-off-by:
Andrey Vagin <avagin@openvz.org> Acked-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Not all distros provide magic numbers we might need during build procedure, thus provide own definitions in one known place. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 26 Feb, 2014 1 commit
-
-
Pavel Emelyanov authored
This time we've made minimal required support for live-migration, so that the p.haul project can work. Another big achievement is better dump and restore performance. Other than this -- a lot of bugfixes here and there, as usual. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 25 Feb, 2014 2 commits
-
-
Cyrill Gorcunov authored
Otherwise if the mark is set up on link we end with -ELOOP error trying to open it. Thus, use O_PATH pointing the kernel that we're not going to read/write this descriptor. Repored-by:
Andrew Vagin <avagin@parallels.com> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Acked-by:
Andrew Vagin <avagin@parallels.com> 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>
-
- 24 Feb, 2014 1 commit
-
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 22 Feb, 2014 4 commits
-
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
If a process is in another pidns than /proc, the link /proc/self doesn't work. (00.061569) Error (mount.c:558): Can't bind-mount 46:/zdtm/live/static/tempfs.test to /tmp/cr-tmpfs.gBVwTb: No such file or directory But since we've switched to the mount namespace (with setns) we can just go an open the path by its name. Reported-by:
Urgen Sherpa <urgen.sherpa@nepallink.net> Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 21 Feb, 2014 9 commits
-
-
Cyrill Gorcunov authored
To be able to profile CRIU with gprof support we need a special flag passed to the compiler and linker. But same time we can't build parasite code with prof support because it'll call for mcount() service routine for which we don't have any stub yet (and even if we had there are other tech details involved). Thus PIE code won't be profiled. To compile with prof support make it as make DEBUG=1 GMON=1 The idea to run gprof then over criu sources. Once you've it compiled with the flags mentioned above -- simply run it (test or whatever, I've been running sh test/zdtm.st static.maps00). Then run gprof ./criu gmon.out Note the gmon.out file lays in directory where criu were running, thus in case of sh test/zdtm.st static.maps00 the output file will be in test/ directory. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Acked-by:
Andrew Vagin <avagin@parallels.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Tikhomirov Pavel authored
Signed-off-by:
Tikhomirov Pavel <snorcht@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Tikhomirov Pavel authored
Signed-off-by:
Tikhomirov Pavel <snorcht@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
| page-pipe.c:230:4: error: format ‘%zu’ expects argument of type ‘size_t’, but argument 4 has type ‘long unsigned int’ [-Werror=format] | page-pipe.c:237:3: error: format ‘%zu’ expects argument of type ‘size_t’, but argument 4 has type ‘long unsigned int’ [-Werror=format] This is because PAGE_SIZE is defined as unsigned long (same as kernel does). Reported-by:
Pavel Emelyanov <xemul@parallels.com> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
At the moment we are using 4K pages all the time, so instead of copying code over all archs we're supporting -- add asm-generic/page.h header. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
We have #define BUG() BUG_ON(true) here, where 'true' is defined in stdbool header, so to be able to include bug.h on its own -- include needed header inplace. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
As we have global variable opts, it is bad to use local var with the same name. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Currently we have a bug, service sends resp of type PRE_DUMP instead of DUMP. So lets introduce send_criu_pre_dump_resp() and use it. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 19 Feb, 2014 2 commits
-
-
Tikhomirov Pavel authored
it was error if come to that point from shmem.c 388L: err = open_page_xfer(&xfer, CR_FD_SHMEM_PAGEMAP, si->shmid); Signed-off-by:
Tikhomirov Pavel <snorcht@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
The offset should point on a next entry. Cc: Pavel Tikhomirov <snorcht@gmail.com> Signed-off-by:
Andrey Vagin <avagin@openvz.org> Acked-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 18 Feb, 2014 12 commits
-
-
Cyrill Gorcunov authored
If area is close to TASK_SIZE limit the high address may exceed it returning error once we try to read pagemap file. So limit the high address. Signed-off-by:
Cyrill Gorcunov <gorcunov@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>
-
Andrey Vagin authored
ID: 0 signal: 26/ (null) notify: signal/pid.5954 ClockID: 1 fscanf "%p" doesn't handle "(null)". https://bugzilla.openvz.org/show_bug.cgi?id=2894 v2: make the original scanf be %d/%s and then additionally parse the obtained string v3: don't use strstr Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
pagemap-cache.c: In function ‘pmc_init’: pagemap-cache.c:35:20: error: comparison of distinct pointer types lacks a cast [-Werror] pagemap-cache.c: In function ‘pmc_fill_cache’: pagemap-cache.c:72:2: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘uint64_t’ [-Werror=format] pagemap-cache.c:72:2: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘uint64_t’ [-Werror=format] pagemap-cache.c:72:2: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘size_t’ [-Werror=format] pagemap-cache.c:89:3: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘uint64_t’ [-Werror=format] pagemap-cache.c:89:3: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘uint64_t’ [-Werror=format] pagemap-cache.c:100:4: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘uint64_t’ [-Werror=format] pagemap-cache.c:100:4: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘uint64_t’ [-Werror=format] pagemap-cache.c: In function ‘pmc_get_map’: pagemap-cache.c:136:3: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘uint64_t’ [-Werror=format] pagemap-cache.c:136:3: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘uint64_t’ [-Werror=format] Reported-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
These are needed to compile project on CentOS 6. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
- drop empty line - end ending endif comment Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
This improve speed if we're dumping a big set of small vmas. CentOS-6 container ------------------ Without cache dump: { freezing_time: 1705 frozen_time: 44885 memdump_time: 9064 memwrite_time: 15846 pages_scanned: 246979 pages_skipped_parent: 0 pages_written: 2831 irmap_resolve: 0 } With cache dump: { freezing_time: 898 frozen_time: 40859 memdump_time: 7254 memwrite_time: 16375 pages_scanned: 246979 pages_skipped_parent: 0 pages_written: 2831 irmap_resolve: 0 } 1024 VMA, 40K each ------------------ Without cache dump: { freezing_time: 170 frozen_time: 30372 memdump_time: 3895 memwrite_time: 691 pages_scanned: 13487 pages_skipped_parent: 0 pages_written: 61 irmap_resolve: 0 } With cache dump: { freezing_time: 231 frozen_time: 27646 memdump_time: 768 memwrite_time: 798 pages_scanned: 13487 pages_skipped_parent: 0 pages_written: 61 irmap_resolve: 0 } Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Pavel reported that in case if there a big number of small vmas present in the dumpee we're reading /proc/pid/pagemap too frequently. To speedup this procedue we inroduce pagemap cache. The interface is: - pmc_init/pmc_fini for cache initialization and freeing - pmc_get_map to retrieve specific PMEs array for VMA area v2: - Move internal constants to pagemap-cache.c - Make PAGEMAP_LEN to accept virtual address/size - Don't adjust low bound in caching mode to save a couple of code bytes Reported-by:
Pavel Emelyanov <xemul@parallels.com> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Christopher Covington authored
Otherwise the build can fail with the following message. ln: .../libcriu.so.1: File exists make: *** [install] Error 1 Signed-off-by:
Christopher Covington <cov@codeaurora.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Christopher Covington authored
Signed-off-by:
Christopher Covington <cov@codeaurora.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Thank Vladimir Davydov <vdavidov@parallels.com> for help and config. Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Acked-by:
Vladimir Davydov <vdavydov@parallels.com> Acked-by:
Kir Kolyshkin <kir@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <kupruser@gmail.com> Acked-by:
Vladimir Davydov <vdavydov@parallels.com> Acked-by:
Kir Kolyshkin <kir@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 14 Feb, 2014 3 commits
-
-
Pavel Emelyanov authored
We want to write into empty image files, so we unlink them before dumping into. Let's O_TRUNC it instead. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
We spend a lot of time reading the /proc/$pid/smaps file. The time is spent in two places: 1 kernel puts too many info into it 2 fgets pulls info in 1024-bytes chunks, info about one vma is typically bigger (up to 3k bytes) thus we call read() ~3 times per one vma, which increases the amount of time spent in kernel to re-fill this info Setting the internal buffer to PAGE_SIZE size reduces the amount of read()-s on ~60% during basic container dump. Setting bigger buffer doesn't work, as kernel's seq file engine feeds at most one page of data per read syscall regardless of the buffer size. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-