Commit graph

47 commits

Author SHA1 Message Date
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
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
Cyrill Gorcunov
405985e964 Add sysctl handling engine
Since we need to operate with sysctls pretty heavy,
better to add some common engine for all handlers.

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-02-02 21:22:20 +04:00
Andrey Vagin
6ee58e4b0e make: remove test/dump directory during clean up
This directory contains image files, which remains after tests

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 20:46:03 +04:00
Cyrill Gorcunov
57454c524b Revert "make: Switch to -02 by default"
This reverts commit 501d85193c.

Need to investigate code generated for parasite since dumper fails.
2012-02-01 19:27:17 +04:00
Andrey Vagin
aa19c22e85 make: Link parasite.o and util-net.o
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 19:27:07 +04:00
Andrey Vagin
1465fade3b util: move recv_fd and send_fd in a separate file
It will be used in the parasite

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 19:26:41 +04:00
Cyrill Gorcunov
501d85193c make: Switch to -02 by default
And turn on -O0 -ggdb3 only if DEBUG=1.
Optimization was turned off at early
prototype stage so no need to carry it
now.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-01 17:23:44 +04:00
Cyrill Gorcunov
9993ab395a make: Clean docs on "make clean" as well
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 15:12:11 +04:00
Stanislav Kinsbursky
c826057a9c IPC: dump namespace itself
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 22:32:22 +04:00
Stanislav Kinsbursky
225d119e5d namespaces: split UTS and generic code
Generic code will be used for other namespaces.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-31 13:43:28 +04:00
Cyrill Gorcunov
17a4a6cd09 docs: Initial commit
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-29 00:09:32 +04:00
Cyrill Gorcunov
54d7a58801 make: Add 'help' target
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-27 23:21:06 +04:00
Cyrill Gorcunov
c2353b30a2 make: Add *.i target
Convenient for debug purpose.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-27 02:32:30 +04:00
Pavel Emelyanov
3391416a1b crtools: Namespaces support skeleton
New option -n to dump/restore namespaces.

Fork the namespaces dumping task and write a helper for switching a namespace.

Prepare the restorer code for restoring namespaces before root task.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-26 16:54:22 +04:00
Cyrill Gorcunov
d2f664b877 make: Eliminate deps build on no-deps targets in zdtm
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Reviewed-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-25 19:14:39 +04:00
Cyrill Gorcunov
bafb5f1ecc make: clean' target should include cleandep' zdtm target
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Reviewed-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-25 19:14:39 +04:00
Cyrill Gorcunov
408dcbc182 make: Add Makefile.inc
Common code for all makefiles.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Reviewed-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-25 19:14:39 +04:00
Cyrill Gorcunov
cfb2d1b029 make: Fix typo in `test' target
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-25 16:56:57 +04:00
Cyrill Gorcunov
a88cd36e7b make: Move legacy tests to test/legacy and use "make test" to run zdtm tests
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-24 19:59:53 +04:00
Cyrill Gorcunov
e69cea25db make: Drop restorer-log.c inclusion in restorer.c
Compile it as a separate file and use ld to merge two
files.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Andrey Vagin <avagin@openvz.org>
2012-01-23 11:41:55 +04:00
Stanislav Kinsbursky
af76a228ed makefile: untie misc targets from dep files
Such targets as "tags", "cscope" and "clean" doesn't require blob headers to
be rebuilt.
Thi patch remove this dependence.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-20 19:52:36 +04:00
Stanislav Kinsbursky
949b11b33e makefile: add dependence on restorer dep file
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-20 18:02:53 +04:00
Stanislav Kinsbursky
9697f49812 makefile: remove obsolete variables
We just don't need them

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-20 18:02:41 +04:00
Cyrill Gorcunov
74bb5d9a26 Merge branch 'stas-make' into dev
* stas-make:
  make: fix parasite deps
  make: cleanup deps files usage
  make: cleanup deps files mess
  make: cleanup targets mess
  cr-dump: remove unnessesary parasite header

Conflicts:
	Makefile

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 22:17:00 +04:00
Stanislav Kinsbursky
cebc7de227 make: fix parasite deps
Remove explicit parasite targets dependence on deps files and use them as
makefile parts.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 20:15:02 +04:00
Stanislav Kinsbursky
d1df3f60f9 make: cleanup deps files usage
Objects does not depend on dep files. Dep files provide rules to build object
files. Thus we need to include dep files.
This also leads make to rebuild dep files (if required) before an other
targets.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 20:14:51 +04:00
Stanislav Kinsbursky
b8f57e0b35 make: cleanup deps files mess
Only two files (parasite-syscall.c and cr-dump.c) depends on parasite code.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 20:14:37 +04:00
Stanislav Kinsbursky
d9c107d7a3 make: cleanup targets mess
Targets should be defined after variables

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-17 20:14:23 +04:00
Andrey Vagin
014841825a restorer: isolate restorer like parasite (v4)
Before this patch the restorer's code is linked in crtools and then
we copied functions from it. In this case all function should
be inline and we can't use a global variables.

I suggest to make it like parasite. The restorer's code is isolated in
own file and will be copied wholly.  The restorer's code is compiled as
position-independent code, so we can use functions and global variale
(E.g. to save descriptor for log messages).

v2: correct indentions in a separate patch
v3: introduce a variable restore_task_exec_start symmetrical to
    restore_thread_exec_start
v4: don't give command in restorer_thread()

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-17 18:08:03 +03: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
Andrey Vagin
7fde5f061b restore: move file-related stuff to a separate file
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-01-10 18:39:39 +04:00
Cyrill Gorcunov
00e14f0448 make: Add DEBUG=1 option
This allows to use pr_debug and dprintk helpers.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2011-12-27 02:28:12 +04:00
Pavel Emelyanov
c5eb61e866 Unix sockets initial support
Currently it can only work with stream sockets, which have no skbs in queues
(listening or established -- both work OK).

The cpt part uses the sock_diag engine that was merged to Dave recently to
collect sockets. Then it dumps sockets by checking the filesystem ID of a
failed-to-open through /proc/pid/fd descriptors (sockets do not allow for
such tricks with opens through proc) against SOCKFS_TYPE.

The rst part is more tricky. Listen sockets are just restored, this is simple.
Connected sockets are restored like this:

1. One end establishes a listening anon socket at the desired descriptor;
2. The other end just creates a socket at the desired descriptor;
3. All sockets, that are to be connect()-ed call connect. Unix sockets
   do not block connect() till the accept() time and thus we continue with...
4. ... all listening sockets call accept() and ... dup2 the new fd into the
   accepting end.

There's a problem with this approach -- socket names are not preserved, but
looking into our OpenVZ implementation I think this is OK for existing apps.

What should be done next is:

1. Need to merge the file IDs patches in our tree and make Andrey to
   support files sharing. This will solve the

	sk = socket();
	fork();

   case. Currently it simply doesn't work :(

2. Need to add support for DGRAM sockets -- I wrote comment how to do it
   in the can_dump_unix_sk()

3. Need to add support for in-flight connections

4. Implement support for UDP sockets (quite simple)

5. Implement support for listening TCP sockets (also not very complex)

6. Implement support for connected TCP scokets (hard one, Tejun's patches are not
   very good for this from my POV)

Cyrill, plz, apply this patch and put the above descriptions onto wiki docs (do we
have the plans page yet?).

Andrey, plz, take care of unix sockets tests in zdtm. Most likely it won't work till
you do the shared files support for sockets.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2011-12-26 23:25:04 +04:00
Cyrill Gorcunov
2e3c4e3692 Move everything related to ptrace into ptrace.[ch]
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2011-12-19 21:57:59 +04:00
Cyrill Gorcunov
d6eab944e3 Move logging functions to log.c
Instead of keeping all unrelated to
C/R procedure helpers in util.c move
logging related helpers to log.c.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2011-12-19 18:52:50 +04:00
Cyrill Gorcunov
6adce279e8 make: Force rebuild is headers changed
Not a clean solution yet.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelianov <xemul@parallels.com>
2011-12-19 15:33:30 +04:00
Cyrill Gorcunov
d924a240ff make: Drop redundand dependency on parasite.h
There is no such file at all and it forced build
process to re-build every make command passed.

Reported-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2011-12-05 20:36:57 +04:00
Cyrill Gorcunov
f0b8a3a63b make: Drop restorer.o from program deps list
It's already in OBJS

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2011-12-05 16:38:08 +04:00
Cyrill Gorcunov
6a26e75aba cleanup: Drop elf references
We dont use Elf restore anymore, drop it.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-11-13 13:07:00 +04:00
Cyrill Gorcunov
e793eb7557 cleanup: Drop unneeded sources
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-11-13 13:00:32 +04:00
Cyrill Gorcunov
489745f235 restore: A number of fixups and debug printing
An idea is to align restorer size to be sure it
wont be stripped in a middle of code.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-11-03 11:58:45 +04:00
Cyrill Gorcunov
63e08215aa restore: Add restorer test
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-10-24 22:23:06 +04:00
Cyrill Gorcunov
a0f463c27d Move seize related functions into seize.[ch]
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-10-13 19:18:43 +04:00
Andrew Vagin
d5d8d920dd make: Fix deps for non-parasite code
Without it parallel execution fails.

Reported-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Vagin <avagin@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2011-09-29 17:02:15 +04:00
Cyrill Gorcunov
98be6495c7 make: Move tests into test/ directory
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-09-29 16:03:36 +04:00
Cyrill Gorcunov
523de23624 Initial commit
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-09-23 12:00:45 +04:00