[CRIU] [PATCH 1/2] action-scripts: Add "pre-resume" stage

Cyrill Gorcunov gorcunov at openvz.org
Wed Jan 18 01:02:04 PST 2017


The main idea is to be able to operate with container
at the moment where its processess and resources are
already restored but the processes are not yet in
running state, ie just before we kick them.

Beside the need of tuning up beancounters (which is vz7
specific feature) this might be useful to make some
additional debug tests from the script.

We can't reuse ACT_POST_RESTORE action or move it because
we can kill the restored processes here and resume them
on a source side as avagin@ explained.

Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 criu/action-scripts.c         | 1 +
 criu/cr-restore.c             | 4 ++++
 criu/include/action-scripts.h | 1 +
 3 files changed, 6 insertions(+)

diff --git a/criu/action-scripts.c b/criu/action-scripts.c
index bfa1f827acb2..e3027bd2ea8a 100644
--- a/criu/action-scripts.c
+++ b/criu/action-scripts.c
@@ -23,6 +23,7 @@ static const char *action_names[ACT_MAX] = {
 	[ ACT_NET_UNLOCK ]	= "network-unlock",
 	[ ACT_SETUP_NS ]	= "setup-namespaces",
 	[ ACT_POST_SETUP_NS ]	= "post-setup-namespaces",
+	[ ACT_PRE_RESUME ]	= "pre-resume",
 	[ ACT_POST_RESUME ]	= "post-resume",
 };
 
diff --git a/criu/cr-restore.c b/criu/cr-restore.c
index 1c87c6ed3f5d..f326251ca82e 100644
--- a/criu/cr-restore.c
+++ b/criu/cr-restore.c
@@ -1962,6 +1962,10 @@ static int restore_root_task(struct pstree_item *init)
 	if (ret == 0)
 		finalize_restore();
 
+	ret = run_scripts(ACT_PRE_RESUME);
+	if (ret)
+		pr_err("Pre-resume script ret code %d\n", ret);
+
 skip_for_check:
 	if (restore_freezer_state())
 		pr_err("Unable to restore freezer state\n");
diff --git a/criu/include/action-scripts.h b/criu/include/action-scripts.h
index 2e3b25ea3b21..4421169fd9cc 100644
--- a/criu/include/action-scripts.h
+++ b/criu/include/action-scripts.h
@@ -11,6 +11,7 @@ enum script_actions {
 	ACT_SETUP_NS,
 	ACT_POST_SETUP_NS,
 	ACT_POST_RESUME,
+	ACT_PRE_RESUME,
 
 	ACT_MAX
 };
-- 
2.7.4



More information about the CRIU mailing list