parasite: Prepare structures for daemon mode
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. v2: delete futex_t ack from tid_state_s Fixed-by:Andrew Vagin <avagin@openvz.org> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
Showing
Please
register
or
sign in
to comment