2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-09-05 16:55:43 +00:00
Commit Graph

9635 Commits

Author SHA1 Message Date
Kir Kolyshkin
03294077af util.c: introduce open_proc_rw()
To be used by the next patch

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-17 16:46:25 +04:00
Kinsbursky Stanislav
389bd830f1 restorer: Don't close SYSV IPC vma fd
It's not a fd to open and map, but SYSV IPC id instead.
So don't close it - this may lead to unpredictable results
(in case of SYSV IPC id will match fd, opened by processes).

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-17 15:55:32 +04:00
Kinsbursky Stanislav
e1cac86bf8 restorer: Move vma flags ANON bit manipulations to restore_mapping()
This looks clearer, because this check has nothing with SYSV IPC
mappings. Also we don't modify the vma_entry itself anymore but
operate with local 'flags' copy.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
[gorcunov@: A few tune ups]
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-17 15:55:24 +04:00
Kinsbursky Stanislav
4fc8bb0a0e IPC: close image files after use
Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-17 15:24:43 +04:00
Andrey Vagin
427349c737 zdtm.sh: clean up output
* Remove redundant messages
* Show which test will be executed

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-17 15:20:27 +04:00
Andrey Vagin
986fa1ab86 zdtm.sh: detect leaked descriptors
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-17 15:20:16 +04:00
Kir Kolyshkin
3116e3e930 dump_one_task(): do not leak opened pid_dir fd
Make sure we close it

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-17 10:46:37 +04:00
Kir Kolyshkin
ac5c297474 Makefile: test target should depend on crtools
Otherwise 'make test' fails on a clean tree because crtools is not built.

Side effect: if you have code modifications that are not yet compiled,
they will be compiled.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-17 10:44:02 +04:00
Cyrill Gorcunov
fb886b7de9 parasite: Print detailed error
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-16 22:05:55 +04:00
Cyrill Gorcunov
cf8b39d4aa util: Drop jerr macros
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-16 22:05:40 +04:00
Cyrill Gorcunov
dcb1cbfb82 Rework parasite code
- make control block to keep all information
   needed to run injected syscall and parasite
   blobs

 - add ptrace_swap_area helper

 - handle both parasite engine calls and injected
   syscalls by single __parasite_execute function

 - drop jerr() usage

 - bring back handling of inflight signals from
   original program inside parasite code

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-16 22:05:28 +04:00
Kinsbursky Stanislav
47ee1213f1 zdtm: add transition/ipc test to IPC ns tests list
Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-16 18:13:49 +04:00
Kinsbursky Stanislav
a83b53d224 zdtm: transition/ipc test update
Added cloning to new IPC ns depends on built option.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-16 18:13:49 +04:00
Andrey Vagin
53ababc680 zdtm: print warning messages about test processes
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2012-02-16 18:13:25 +04:00
Kinsbursky Stanislav
63d10b6104 zdtm: add static/sem test to IPC ns tests list
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:33:46 +04:00
Kinsbursky Stanislav
f086010abd IPC: restore semaphores sets
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:33:46 +04:00
Kinsbursky Stanislav
4101487f87 IPC: show semaphores set
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:33:46 +04:00
Kinsbursky Stanislav
4141296ed7 IPC: dump semaphores set
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:33:46 +04:00
Kinsbursky Stanislav
90340f75ca IPC: remove prohibition of mapped shared memory segments migration
Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:30:34 +04:00
Kinsbursky Stanislav
574302bf8d restore: support SYSV IPC vma
This patch introduces the following changes:
1) writing of shmid value into vma_area->fd instead of
   waiting for shared memory region is open by parent,
   reopen it and dump fd.
2) new syscall support: sys_shmat
3) use sys_shmat() to map memory region in restorer's
   mapping function if vma flag VMA_AREA_SYSVIPC is set.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:30:34 +04:00
Kinsbursky Stanislav
e967566565 restorer: move map code to separated function
SYSV IPC segment map will be added there in further patch in the series

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:30:34 +04:00
Kinsbursky Stanislav
a5c6c02f49 restore: shmid_id structure from find_shmem_id() function
Returning shmid value of not enough, because SYSV IPC shmid equal to zero is a
valid value.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:30:34 +04:00
Kinsbursky Stanislav
b3cfe73556 dump: support SYSV IPC vma
This patch introduces the following changes:

1) introduces new flag VMA_AREA_SYSVIPC to mark corresponding vma entries.
2) enhance task /proc/<pid>/maps parsing to obtain first 5 letters of mapped
   file. If device major file belong to ins equal to 0 (tmpfs) and it's name
   starts with "/SYSV", then this mapping is considered as SYSV IPC and
   corresponding vma entry status is updated with VMA_AREA_SYSVIPC flag.
3) omit dumping of mapping pages for SYSV IPC vmas.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-15 13:30:34 +04:00
Cyrill Gorcunov
40fc4d2122 Merge branch 'zdtm' of https://github.com/avagin/crtools
* 'zdtm' of https://github.com/avagin/crtools:
  zdtm: remove white spaces
  zdtm: transmit  to crtools dump
  zdtm: don't kill test processes in case an error
2012-02-15 11:59:45 +04:00
Andrey Vagin
9ad1de0a4f zdtm: remove white spaces
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-15 10:51:57 +03:00
Andrey Vagin
3b2bc56e22 zdtm: transmit to crtools dump
This functionality is used to check that dump isn't destructive.

Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-15 10:51:52 +03:00
Andrey Vagin
9e41d474f3 zdtm: don't kill test processes in case an error
We want to have maximum info about an error.

Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-15 10:51:48 +03:00
Kir Kolyshkin
7c961a7b8f include/types.h cleanup: remove *_FILENO
These defines are already provided by unistd.h, and the only user
is log.c which already includes unistd.h.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-14 21:16:00 +04:00
Kinsbursky Stanislav
e999e9fa29 restore: fix "zobie" typo
Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-14 21:13:33 +04:00
Kinsbursky Stanislav
9b73ad59e9 IPC: restore message queue
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-14 20:21:30 +04:00
Kinsbursky Stanislav
24c4381644 IPC: show message queue dump content
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-14 20:21:30 +04:00
Kinsbursky Stanislav
fa2ff60680 IPC: dump message queue
v2: New "MSG_STEAL" functionality is used

Signed-off-by: Stanislav Kinsbursky <skinsbursky@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-14 20:21:30 +04:00
Kinsbursky Stanislav
b60524abef zdtm: add static/msgque test to IPC ns tests list
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Acked-by: Andrew Vagin <avagin@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-14 17:39:32 +04:00
Cyrill Gorcunov
c45e622480 Merge remote-tracking branch 'avagin/zdtm'
* avagin/zdtm:
  zdtm: transmit  to crtools dump
  zdtm: don't kill test processes in case an error
  zdtm: add static/shm test to IPC ns tests list
  zdtm: don't wait in IPC queue on message operations
2012-02-14 17:39:12 +04:00
Cyrill Gorcunov
293d999e4f parasite: Code grouping in parasite_infect_seized
- mmap_seized returns only NULL on error, drop
   redumdant test
 - setup control block in one group
 - no need for err_free label, xfree handles NULL easily
 - prepare registers for munmap_seized call on error path

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
a349f1f137 parasite: Cleanup syscall_seized
- err_restore_full label is redundant
 - must try to restore poked area if it's
   parially corrupted

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
96b8f94d89 parasite: To execute parasite blob we need prepare regs
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
14cca95ea1 parasite: Restore code indentation
No func changes.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
12b38e7692 parasite: Don't inject code out of blob
It actually not a problem since we never reach a tail
out of blob, but better to be on a safe side (after
all there is no guarantee that .data section will not
end up exactly at blob final bytes).

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
39976326c9 util-net: Make sure that there is real data in message
Otherwise weird address might be dereferenced.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
f130df9234 util-net: Zeroify structures
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
86392b7f2f compiler: Add compiler noinline attribute and barrier helper
They are not needed at moment but will be needed at
parasite/restorer code rework time, so add them now
just to not forget.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
0fe72423c1 parasite: Make sure no dots in names generated
Some names may be "dot" mangled.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
2a0cea2997 parasite: Add run-time stack alignment
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:09 +04:00
Cyrill Gorcunov
536eaa0f03 parasite: Shrink too long lines in bootstrap code
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:08 +04:00
Cyrill Gorcunov
b89d8394cf make: Add %.s target
It's pretty convenient to have asm generated code
at hands if hunting weird problems.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:08 +04:00
Cyrill Gorcunov
5988d401b7 Add processor-flags.h
We will need it for parasite.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:08 +04:00
Cyrill Gorcunov
be8ef9ff32 parasite: Make sure the structures passed are small enough
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:08 +04:00
Cyrill Gorcunov
60fc4ed76a parasite: Cleanup get_vma_by_ip
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:08 +04:00
Cyrill Gorcunov
ae817148e0 parasite: Some code style tuning in header
Easier to read.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-14 17:18:08 +04:00