Commit graph

870 commits

Author SHA1 Message Date
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
Andrey Vagin
2109271601 zdtm: transmit to crtools dump
This functionality is used to check that dump isn't destructive.
2012-02-14 16:22:44 +04:00
Andrey Vagin
a9f130fd82 zdtm: don't kill test processes in case an error
We want to have maximum info about an error.
2012-02-14 16:07:39 +04:00
Kinsbursky Stanislav
6c0b5becf5 zdtm: add static/shm test to IPC ns tests list
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-14 15:42:20 +04:00
Kir Kolyshkin
87b5456f62 Makefile: add distclean target
...and move tags/cscope removal to it.

'make clean' is traditionally used to remove all
compiler-generated stuff in order to do a clean rebuild.

'make distclean' cleans more, it is used to prepare sources
for 'make dist' (creating a source tarball).

It is unfortunate to find out you have to run 'make tags cscope'
every time after 'make clean'.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-14 11:27:37 +04:00
Kir Kolyshkin
fcfd705d39 parasite.c: use .space not .skip for inline asm
In the beginning it was the Word, and the Word was .space.
Later, .skip was introduced as a synonym for .space,
initially only for 680x0 platform.

But the sole reason for this patch is that I use clang/llvm
to check the code and unfortunately it does not understand .skip,
printing long ugly warnings I'd like to avoid.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-14 11:27:06 +04:00
Kinsbursky Stanislav
f86d167bf1 ipc: rename struct ipc_seg
This name for the structure is obfuscating, because the structure
will be used also for queues and semaphores sets migration.

This patch renames this structure int ipc_desc_entry. It also renames
all related functions and prints to reflect structure name change.

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-13 21:04:23 +04:00
Pavel Emelyanov
dfa08e86d1 parasite: Mark parasite_execute static
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-13 01:06:07 +04:00
Pavel Emelyanov
e6823c274e parasite: Enlighten parasite cmd/adg injection
Since we now have the parasite memory shared with crtools process we
can just memcpy this data between them.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-13 01:06:07 +04:00
Pavel Emelyanov
354ab03a67 parasite: Enlighten parasite blob injection
I don't like that we poke the parasite into remote space with 4k calls
to ptrace. Now we have the /proc/pid/map_files/ dir which helps us sharing
a mapping with some other process.

Use this -- map the remote area for parasite locally and put the parasite
blob into it with simple memcpy.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-13 01:06:06 +04:00
Pavel Emelyanov
2b1a58b3b4 parasite: Remove unneeded on-stack variables
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-13 01:06:06 +04:00
Pavel Emelyanov
250d4e9111 parasite: Remove extra on-stack regsets
In fact all we need for parasitic syscall is -- original regs and some
regs with syscall args to work on. The former one is obtained in the
infect/cure code and the latter one is located (and copied from orig)
nearby.

That said, we can simplify all the regs passing-down code by removing
intermediate instances and utilizing the top-level reg-s for this.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-12 11:45:30 +04:00
Pavel Emelyanov
cf662edc56 parasite: Make mmap/munmap_seized static
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-12 11:45:30 +04:00
Pavel Emelyanov
aef3c0af43 parasite: Minor getregs optimisation
No need in getting regs one more time -- we have the orig_regs at hands.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-12 11:45:29 +04:00
Pavel Emelyanov
cdbd2563bf parasite: Symplify syscall_seized
There's no need in 3 instances of regs in arguments. One is more than enough.
Plus, this one can be made static.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-12 11:45:29 +04:00
Pavel Emelyanov
4437a1cf59 parasite: Remove unneeded getregs
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-12 11:45:29 +04:00