[CRIU] [PATCH 2/4] restore: Add more detailed log in wait_exiting_children
Cyrill Gorcunov
gorcunov at gmail.com
Fri Dec 7 14:57:10 MSK 2018
Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
---
criu/cr-restore.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/criu/cr-restore.c b/criu/cr-restore.c
index d915615dfce3..ea4a599b303c 100644
--- a/criu/cr-restore.c
+++ b/criu/cr-restore.c
@@ -1007,7 +1007,7 @@ static int wait_on_helpers_zombies(void)
return 0;
}
-static int wait_exiting_children(void);
+static int wait_exiting_children(char *prefix);
static int restore_one_zombie(CoreEntry *core)
{
@@ -1024,7 +1024,7 @@ static int restore_one_zombie(CoreEntry *core)
prctl(PR_SET_NAME, (long)(void *)core->tc->comm, 0, 0, 0);
if (task_entries != NULL) {
- wait_exiting_children();
+ wait_exiting_children("zombie");
zombie_prepare_signals();
}
@@ -1134,6 +1134,9 @@ static bool child_death_expected(void)
switch (pi->pid->state) {
case TASK_DEAD:
case TASK_HELPER:
+ pr_debug("\texpecting %s child %d to exit\n",
+ pi->pid->state == TASK_DEAD ?
+ "zombie" : "helper", vpid(pi));
return true;
}
}
@@ -1141,11 +1144,12 @@ static bool child_death_expected(void)
return false;
}
-static int wait_exiting_children(void)
+static int wait_exiting_children(char *prefix)
{
siginfo_t info;
if (!child_death_expected()) {
+ pr_debug("%s: no exiting children expected\n", prefix);
/*
* Restoree has no children that should die, during restore,
* wait for the next stage on futex.
@@ -1156,6 +1160,8 @@ static int wait_exiting_children(void)
return 0;
}
+ pr_debug("%s: gonna wait for children to exit\n", prefix);
+
/*
* The restoree has children which will die - decrement itself from
* nr. of tasks processing the stage and wait for anyone to die.
@@ -1184,6 +1190,7 @@ static int wait_exiting_children(void)
return -1;
}
+ pr_debug("%s: finished waiting for children to exit\n", prefix);
return 0;
}
@@ -1202,7 +1209,7 @@ static int restore_one_helper(void)
if (prepare_fds(current))
return -1;
- if (wait_exiting_children())
+ if (wait_exiting_children("helper"))
return -1;
sfds_protected = false;
--
2.17.2
More information about the CRIU
mailing list