2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-09-01 14:55:39 +00:00
Commit Graph

9635 Commits

Author SHA1 Message Date
Andrey Vagin
fb177e0312 restore: generalize mechanism of remapping memory to restorer (v2)
Sometime we want to have a shared mapping in restorer. E.g. A storage
for shared memory entries. This entries contains locks, which should
be released in restorer.

v2: fixed according to Pavel's comments

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-17 18:07:58 +03:00
Cyrill Gorcunov
31e99b7b37 restore: Drop uneeded code
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 11:52:14 +04:00
Cyrill Gorcunov
55d491fb0e restore: Use non sys_ versions of libc functions
There is no need to use sys_ versions of libc functions
when we run in non relocated code. It's a leftover from
early testing time. Fix it.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 11:52:04 +04:00
Andrey Vagin
1494dbdf63 files: correct message
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 11:50:39 +04:00
Andrey Vagin
feae91fe9d files: restrict number of fdinfo_list_entries
We allocate only one page for fdinfo_list_entries.
In the future we will be able to resize this memory.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 11:50:20 +04:00
Andrey Vagin
c1e69464dc file: remove crap from prepare_fdinfo_global
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 11:49:57 +04:00
Andrey Vagin
fd4b542e01 files: typo fix
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 11:48:29 +04:00
Cyrill Gorcunov
5eda66dd6d zdtm: Add vDSO test
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 02:45:53 +04:00
Pavel Emelyanov
139a2ee27b fdinfo: Rewrite fd prep/open/recv via switch-base state-machine
Yet again -- this makes code easier to understand from my POV.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 23:52:19 +04:00
Pavel Emelyanov
7f5da73198 fdinfo: Remove unused variables from receive_fd
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 23:51:53 +04:00
Pavel Emelyanov
a2d5b88150 fdinfo: Open special fdinfos in a separate helper
Makes code easier to read.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 23:51:33 +04:00
Pavel Emelyanov
d1b3fd09b3 fdinfo: fd_is_special helper for maps and cwd
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 23:51:12 +04:00
Pavel Emelyanov
e2d8aec7f5 files: Named constant for cwd fdinfo
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 23:50:50 +04:00
Cyrill Gorcunov
b3c6742a7a restore: Use xmalloc instead of plain malloc
And add error checking

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 14:31:25 +04:00
Pavel Emelyanov
2e31cb1f8e restore: Close and drop shmem remap fd
Reprimand to commits bd8b2b0f and d0a6e9a1 authors for not
cleaning after themselves...

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 13:44:06 +04:00
Pavel Emelyanov
a28d53f4e1 restore: Don't init master thread args
This one is skipped at restore and leaves an open core file
in target task's fdtable.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 13:43:57 +04:00
Pavel Emelyanov
368c4a508b restore: Close ns_last_pid file fd
Otherwise it pops up after restore in target task's fdtable.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 13:43:49 +04:00
Pavel Emelyanov
09a7273e04 restore: O_TRUNC file instead of unlink
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 13:43:41 +04:00
Pavel Emelyanov
af3616d0ce util: Sanitize get_image_path
Make it shorter and simpler and use one in open_image_ro_nocheck.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 13:43:33 +04:00
Pavel Emelyanov
8c9c575ab4 util: Move get_image_path to util.c
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 13:43:23 +04:00
Cyrill Gorcunov
4baff50c90 zdtm: Add pthread00 test
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 13:43:13 +04:00
Andrey Vagin
8cc08ada8e cr-restore: don't close image fd in create_pipe
create_pipe() may restore up to 3 descriptors. They may be both ends
of pipes and a target descriptor. The image fd may hold any of them.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 12:01:33 +04:00
Cyrill Gorcunov
579e241c3b Revert "restore: pipes -- Allow to reuse descriptors"
This reverts commit 46c613cc7d.

Andrey posted a proper fix for it. Moreover, the problem in first
place was initiated by a parasite application running during test
case, crtools knows nothing about.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-16 12:01:23 +04:00
Cyrill Gorcunov
46c613cc7d restore: pipes -- Allow to reuse descriptors
It's perfectly fine to reuse descriptors here,
since we use plain pipe() call and it migh choose
the descriptor which we need after.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 23:37:20 +04:00
Pavel Emelyanov
b2cfd095fb zdtm: Make cmdline a little bit more user-friendly
Add the -l option to show the list of tests
Make the default zdtm/live/ prefix when running individual test

Now you can do it like

# sh ./zdtm.sh           for running all tests
# sh ./zdtm.sh -l        to list available tests
# sh ./zdtm.sh <test>    to run test <test>, e.g. "static/pipe00"

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:54:37 +04:00
Cyrill Gorcunov
9330ce170a Add tools/commit-bot.sh
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:45:54 +04:00
Pavel Emelyanov
6babc5c17b files: Show file ID in -s output
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:37:49 +04:00
Pavel Emelyanov
f899d0407a files: Handle the absence of ID in proc fdinfo
This makes crtools correctly abort when working on wrong kernel.
Otherwise all the open files will have the same (garbage) ID and
the subsequent restore will result in broken app.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:37:39 +04:00
Pavel Emelyanov
cc14c6eb61 pstree: Sanitize pstree image opening on restore
The old code carried the path through the stack. Now we have
pstree_pid and handy helpers to get one.

Tested by pipes00 test from zdtm (it forks).

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:37:27 +04:00
Cyrill Gorcunov
f80694deed proc_pase: Make sure we may scan up to 15 symbols in name
And do not use strcpy, better to stick with strncpy.

Moreover, to be on a safe side make proc internal
buffer big enough even for "(%16s)" format, it's
hardly possible that the kernel ever change stat
format but just to be on a safe side.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:37:17 +04:00
Cyrill Gorcunov
a9969dcf72 restore: Format printing in restore_pipe_data
To align data with previous callers.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:36:52 +04:00
Cyrill Gorcunov
05c142c0f5 proc_parse: Make sure the fields in parsing stream do match
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:36:40 +04:00
Cyrill Gorcunov
976c092c3f show: Drop redundant \n in pr_img_tail
Before

# ./crtools -s -f unixsk-12713.img

CR_FD_UNIXSK
----------------
fd    8 type  2 state  7 namelen   17 backlog   17 id  79422 peer      0 --> test-socket-conn
fd    9 type  2 state  7 namelen   23 backlog   23 id  79423 peer  79423 --> test-socket-bound-conn

----------------

After

# ./crtools -s -f unixsk-12713.img

CR_FD_UNIXSK
----------------
fd    8 type  2 state  7 namelen   17 backlog   17 id  79422 peer      0 --> test-socket-conn
fd    9 type  2 state  7 namelen   23 backlog   23 id  79423 peer  79423 --> test-socket-bound-conn
----------------

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:36:27 +04:00
Cyrill Gorcunov
893f5099cb show: Drop redundat rendering of process tree
Leftover from merging stage.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 22:36:18 +04:00
Cyrill Gorcunov
fd0802ab66 proc_parse: Drop ending ')' from format
%s specificator eats it and matching stream fails.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 01:42:08 +04:00
Cyrill Gorcunov
04a6f0449d proc_parse: Zap ending ')' in name
Repored-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-15 01:41:58 +04:00
Pavel Emelyanov
47ba808706 restorer: Shrink ns_last_pid_path size
No need for the big PATH_MAX here.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-14 14:39:16 +04:00
Pavel Emelyanov
63137fbecb restorer: Drop unneded last_pid_buf
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-14 14:39:07 +04:00
Pavel Emelyanov
3302183c05 restore: Pass self-vma file descriptor directly
Instead of passing self-vma file path to restorer
code simply open it before restore_task call and
pass descriptor instead. This saves some memory.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-14 14:38:53 +04:00
Cyrill Gorcunov
acfd1d7fc4 crtools: Fix command line parsing in parse_pid_stat
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-14 02:00:59 +04:00
Cyrill Gorcunov
1e073d05eb crtools: A few style update on proc_parse
No func changes.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-14 02:00:48 +04:00
Pavel Emelyanov
3202d72f85 crtools: Parse /proc/pid/stat in a more readable way
We will later need other fields of this file, so let's parse it right
now in a way, that allows to easily get new fields.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-14 02:00:38 +04:00
Pavel Emelyanov
12d4c85410 crtools: Move proc parsing routines to one file
Start with /proc/pid/maps parser

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-14 02:00:26 +04:00
Cyrill Gorcunov
9792a860b3 dump: Fix arguments types in printing
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-13 23:04:20 +04:00
Cyrill Gorcunov
08569cbc5f dump: Use proper format for int printing
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-13 22:43:58 +04:00
Cyrill Gorcunov
53d75ad13c show: Fixup nit left after merging
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-13 21:42:18 +04:00
Cyrill Gorcunov
1c96c5cff0 Merge branch '@xemul' into dev
* @xemul:
  crtools: Collect dumping fd parameters into one place
  crtools: Toss dump_one_fd args around
  crtools: Rename fd to lfd in dump_one_fd
  crtools: Sanitize pstree construction
  crtools: Remove unused printk_registers and co
  crtools: Deduplicate file info showing code
  crtools: Merge pstree collecting into showing
  crtools: Remove unused and wrong arrays from pstree image
  crtools: Remove lseeks after prep_cr_ calls
  crtools: Cleanup collect_pstree in cr-show

Conflicts:
	cr-dump.c
	include/sockets.h
	sockets.c

The conflicts are mostly because of commit
995ef5eca3

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-13 21:39:14 +04:00
Cyrill Gorcunov
81277f21a0 parasite: Embed vma_area into control block
No need to track in a weird way. It's small structure.

Moreover, the rest of parasite code doesn't count for
space allocated _after_ the main control block. We simply
had happened to not hit any problems before.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-13 20:16:20 +04:00
Cyrill Gorcunov
995ef5eca3 Use openat() helper intensively when opening /proc/pid/X files
This allows us to get rid of open-coded "/proc/pid/X".

Based-on-patch-from: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-13 18:29:18 +04:00
Cyrill Gorcunov
b0a9533080 crtools: Make sure there is enough space to hold image path
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-13 17:09:17 +04:00