[CRIU] [PATCH 08/10] parasite: Prepare structures for daemon mode
Cyrill Gorcunov
gorcunov at openvz.org
Mon Mar 4 07:53:16 EST 2013
Parasite daemon mode might be considered as a series
of network messages sent from main crtools module to
parasite daemon which spins on a socket waiting for
command to handle.
Simple command handling session might look as
crtools daemon
| | |
| ---> command message ---> | |
| | ---> receive command ---> |
| | .... |
| | handle command |
| | .... |
| | <--- send ack <--- |
| <--- receive ack <--- | |
| | |
v v v
time
where, in case of multithread application [handle command] stage
includes waking up of children threads via futexes, wait until
handling complete and only then send ack back to ctrools module.
This patch brings in description of command message as
struct ctl_msg {
unsigned int id; /* command recipient */
unsigned int cmd; /* command itself */
unsigned int ack; /* ack on command */
int err; /* error code on reply */
};
For example, in case of dumpee being with pid 2 and acquiring
to handle PARASITE_CMD_DUMP_MISC, the command/ack series will look
as
cmd-msg
-------
.id = 2,
.cmd = PARASITE_CMD_DUMP_MISC,
.ack = 0,
.err = 0,
ack-msg
-------
.id = 2,
.cmd = PARASITE_CMD_DUMP_MISC,
.ack = PARASITE_CMD_DUMP_MISC,
.err = 0
in case if error happened in parasite, the @err field set accordingly.
For convenience ctl_msg_cmd()/ctl_msg_ack() macros are provided
for control message generations.
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
include/parasite.h | 23 +++++++++++++++++++++++
pie/parasite.c | 6 ++++++
2 files changed, 29 insertions(+)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-parasite-Prepare-structures-for-daemon-mode.patch
Type: text/x-patch
Size: 1466 bytes
Desc: not available
URL: <http://lists.openvz.org/pipermail/criu/attachments/20130304/6f72d81a/attachment.bin>
More information about the CRIU
mailing list