- 01 Jun, 2016 25 commits
-
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
These two objects are actually needed at the very early stages of restore, much earlier than they are actually allocated. To make life nicer, let's allocate args from private rst mem, it will get remapped into restorer blob automatically. The new memory layout then is | restorer code | memzone (stacks and sigframes) | arguments | The last area is unmapped at the very end of restorer code. Also this gives the opportunity not to copy many bits betweek static variables and task-args, but put them directly into args. All the next patches are about it. Also the sigreturn_restore() is now stuffed with preparatory code and is quite big. When new "restoring" is added it's confusing at which place in the code it should be inserted. This patch makes a clear distinction -- the sigreturn_restore() is __only__ about remapping the memory into restorer blob and jumping into it. All the rest should go into restore_one_alive_task(). Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Right now memzone (stack and sigframe) sit on thread args, which are allocated independently from rst-mem. In the next patches task and thread args will be moved on rst-mem and will get unmapped by restorer at the end. Since both stack and sigframe are required even after rst-mem unmap, memzon should live independelntly. The new restorer blob layout will be described in the next patch. Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Reviewed-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
When getting hint for restorer blob we scan the list of vmas in criu address space. Since these vmas are only required to find holes, we can merge vmas alltogether and make restorer_get_vma_hint's work easier. Reduces list of items in small zdtm tests from 71 to 9. Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Acked-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Andrew Vagin authored
In this case we can run more tests Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Andrew Vagin authored
Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Dengguangxing authored
Signed-off-by:
Deng Guangxing <dengguangxing@huawei.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Dengguangxing authored
join-ns zdtm test will skip ns and uns flavors, and some socket related test, too. Because join-ns test will try to join an existing network namespace. Signed-off-by:
Deng Guangxing <dengguangxing@huawei.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Andrew Vagin authored
CID 159849 (#4 of 4): Resource leak (RESOURCE_LEAK) 15. leaked_storage: Variable jn going out of scope leaks the storage it points to. Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Cyrill Gorcunov authored
To match them in struct cr_options declaration. No func change. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Dengguangxing authored
Signed-off-by:
Deng Guangxing <dengguangxing@huawei.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Dengguangxing authored
Signed-off-by:
Deng Guangxing <dengguangxing@huawei.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Dengguangxing authored
this patch add join-ns option to criu CLI and RPC. This opt can be used in this fomat: --join-ns NS:PID|NS_FILE for example --join-ns net:12345 or --join-ns net:/foo/bar. pid namespaces is not supported yet. As fork() is needed to make new pid-namespace work. That makes it hard for criu to track the child-process through pid because another child process has been created after fork(). Signed-off-by:
Deng Guangxing <dengguangxing@huawei.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
- 31 May, 2016 9 commits
-
-
Pavel Emelyanov authored
The restore_bootstrap_len is restorer, args and rst-mem lenghts. Restorer is pie_size() from restorer, which is page-size aligned. Args len is aligned to page-size few lines above. The remapable rst-mem grows page by page and is aligned too. Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com> Acked-by:
Cyrill Gorcunov <gorcunov@openvz.org>
-
Andrew Vagin authored
Currently all test mounts are mounted in the host mount namespace, so on restore we get root with some mounts. Cc: Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Acked-by:
Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Andrew Vagin authored
Now we don't detect extra mounts, if they have peers with the same root and target paths. Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Acked-by:
Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Andrew Vagin authored
Jenkins sends this files as a message body if something failed. Cc: Sergey Bronnikov <sergeyb@openvz.org> Fixes: 474f2dfc ("zdtm.py: add option --keep-going") Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Andrew Vagin authored
Reported-by:
Stanislav Kinsburskiy <skinsbursky@virtuozzo.com> Cc: Stanislav Kinsburskiy <skinsbursky@virtuozzo.com> Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Kirill Tkhai authored
We were luckely on built-in tests, because always AIO pages were present, and, thus, they are dumped. But AIO pages are not guaranteed to be present in common case. This patch makes AIO pages are dumped certanly. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Kirill Tkhai authored
nr_req always depends on ring size and we even check for that. Kill parasite_aio::max_reqs,vma_nr_reqs and vma_area::aio_nr_req, because they are not need and excess. Signed-off-by:
Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Kirill Tkhai authored
The first is a preparation to kill aio_nr_req. The second and the third are to have more debug info at restore. v2: Print mmap err code Signed-off-by:
Kirill Tkhai <ktkhai@vituozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Andrew Vagin authored
Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
- 30 May, 2016 6 commits
-
-
Dmitry Safonov authored
This should fix errors on build envs, where git tags haven't been fetched. I.e, Travis-ci does not fetch tags before building a project, wich results in: ---> Running in 0d63a3d28a7a fatal: No names found, cannot describe anything. fatal: No names found, cannot describe anything. make[1]: Entering directory '/criu' The other way is to fetch tags on `git describe` failure, but it that way has two cons: - it will change user's git (and I'm not sure it's right); - we need not only fetch tags in that case, but also remotes, as otherwise it will fail with "fatal: No tags can describe <hash>": https://travis-ci.org/0x7f454c46/criu/jobs/133362045#L1748 Cc: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Dmitry Safonov <dsafonov@virtuozzo.com> Acked-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Pavel Tikhomirov authored
to fix error: ./crit/crit decode -i test/dump/zdtm/static/maps04/118/1/stats-dump Traceback (most recent call last): File "./crit/crit", line 276, in <module> main() File "./crit/crit", line 273, in main opts["func"](opts) File "./crit/crit", line 28, in decode img = pycriu.images.load(inf(opts), opts['pretty'], opts['nopl']) KeyError: 'nopl' Signed-off-by:
Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Pavel Emelyanov authored
In some images there can be quite a long "payload" -- some raw data that is represented by base64 encoding. If we want to explore huge images reading tons of base64 symbols can be quite time consuming :) E.g. I a 1.5 gigs image with sysv shmem was sent to me some time ago for investigation %) So here is the --nopl argument for show action (decode should produce encode-able image, so payload there is needed) that just shows the amount of bytes in payload (if any). Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Dmitry Safonov authored
This seems to be known problem in util-vdso.c on aarch64 [1]. Now restorer segfaults with the following log: [ 8107.384817] criu[5135]: unhandled level 3 translation fault (11) at 0x00005b98, esr 0x90000007 [ 8107.385538] pgd = ffffffc038dbc000 [ 8107.386046] [00005b98] *pgd=0000000078d6c003, *pud=0000000078d6c003, *pmd=0000000073c31003, *pte=0000000000000000 [ 8107.391920] [ 8107.392521] CPU: 0 PID: 5135 Comm: criu Not tainted 4.5.0 #29 [ 8107.392805] Hardware name: linux,dummy-virt (DT) [ 8107.393140] task: ffffffc039a2a400 ti: ffffffc033c34000 task.ti: ffffffc033c34000 [ 8107.393782] PC is at 0x13514 [ 8107.406332] LR is at 0x1342c [ 8107.406550] pc : [<0000000000013514>] lr : [<000000000001342c>] pstate: a0000000 This is because gcc for aarch64 adds vdso_symbols array to symbols table and by that reason, it needs run-time relocations in place. How it goes (with cut not interesting assembly): 0x14104: adrp x7, 0x14000 ; adrp+add loading of 0x14114: add x0, x7, #0x928 ; symbol table's address, 0x14134: ldp x2, x3, [x0] ; loading address of symbol from ; symbol table 0x1414c: stp x2, x3, [x29,#112] ; saving it on stack on ; function's begin 0x14188: ldr x2, [x29,#112] ; using symbol's address in code The symbol for this in symbol table is: [root@alarm cr]# readelf -s criu/pie/restorer.built-in.bin.o | grep 5b98 248: 0000000000005b98 0 NOTYPE LOCAL DEFAULT 1 $d And also may be visible this way: objdump -dS criu/pie/restorer.built-in.bin.o | less ... 0000000000004924 <cur_loglevel>: 4924: 00000002 00005b98 00000000 00005ed0 .....[.......^.. 4934: 00000000 00005ee8 00000000 00005f00 .....^......._.. So, in a symbol table lies not relocated address of symbol. The real address may be visible with added printing of vdso_symbols[0]: pie: vdso: vdso_symbols[0] 0x15b98 (this way gcc by some reason does access symbol through local adrp+add calculations, than through stack-saved pointer of a symbol from symbol table). While we don't handling properly relocs here, I suggest this ugly workaround. Temporary fix for: #150 [1]: https://lists.openvz.org/pipermail/criu/2015-October/022453.html Cc: Wang Long <long.wanglong@huawei.com> Cc: Christopher Covington <cov@codeaurora.org> Cc: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Dmitry Safonov <dsafonov@virtuozzo.com> Tested-by:
long.wanglong <long.wanglong@huawei.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Dmitry Safonov authored
As for compatible 32-bit pie size of uint64_t is bigger than size of unsigned long type, add proper casts, so we could build compatible pie. Signed-off-by:
Dmitry Safonov <dsafonov@virtuozzo.com> Acked-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Reviewed-by:
Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
-