[CRIU] [PATCH 03/21] parasite: Prepare structures for daemon mode
Pavel Emelyanov
xemul at parallels.com
Fri May 24 12:10:02 EDT 2013
On 05/24/2013 04:20 PM, Andrey Vagin wrote:
> From: Cyrill Gorcunov <gorcunov at openvz.org>
>
> 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 at openvz.org>
> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
> Signed-off-by: Andrey Vagin <avagin at openvz.org>
Applied
More information about the CRIU
mailing list