[CRIU] [PATCH 09/10] deuplication: add auto-dedup option
Tikhomirov Pavel
snorcht at gmail.com
Tue Nov 19 02:28:28 PST 2013
Signed-off-by: Tikhomirov Pavel <snorcht at gmail.com>
---
crtools.c | 22 ++++++++++++++++++----
include/crtools.h | 1 +
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/crtools.c b/crtools.c
index d8e8bcb..182d41b 100644
--- a/crtools.c
+++ b/crtools.c
@@ -126,6 +126,7 @@ int main(int argc, char *argv[])
{ "prev-images-dir", required_argument, 0, 53},
{ "ms", no_argument, 0, 54},
{ "track-mem", no_argument, 0, 55},
+ { "auto-dedup", no_argument, 0, 56},
{ },
};
@@ -269,6 +270,9 @@ int main(int argc, char *argv[])
case 55:
opts.track_mem = true;
break;
+ case 56:
+ opts.auto_dedup = true;
+ break;
case 54:
opts.check_ms_kernel = true;
break;
@@ -306,7 +310,10 @@ int main(int argc, char *argv[])
if (!strcmp(argv[optind], "dump")) {
if (!tree_id)
goto opt_pid_missing;
- return cr_dump_tasks(tree_id);
+ ret = cr_dump_tasks(tree_id);
+ if (ret == 0 && !opts.use_page_server && opts.auto_dedup)
+ return cr_dedup();
+ return ret;
}
if (!strcmp(argv[optind], "pre-dump")) {
@@ -323,7 +330,10 @@ int main(int argc, char *argv[])
opts.final_state = TASK_ALIVE;
}
- return cr_pre_dump_tasks(tree_id);
+ ret = cr_pre_dump_tasks(tree_id);
+ if (ret == 0 && !opts.use_page_server && opts.auto_dedup)
+ return cr_dedup();
+ return ret;
}
if (!strcmp(argv[optind], "restore")) {
@@ -346,8 +356,12 @@ int main(int argc, char *argv[])
return cr_exec(pid, argv + optind + 1);
}
- if (!strcmp(argv[optind], "page-server"))
- return cr_page_server(opts.restore_detach);
+ if (!strcmp(argv[optind], "page-server")) {
+ ret = cr_page_server(opts.restore_detach);
+ if (ret == 0 && opts.auto_dedup)
+ return cr_dedup();
+ return ret;
+ }
if (!strcmp(argv[optind], "service"))
return cr_service(opts.restore_detach);
diff --git a/include/crtools.h b/include/crtools.h
index 679fcb0..428f18a 100644
--- a/include/crtools.h
+++ b/include/crtools.h
@@ -38,6 +38,7 @@ struct cr_options {
char *addr;
bool track_mem;
char *img_parent;
+ bool auto_dedup;
};
extern struct cr_options opts;
--
1.7.9.5
More information about the CRIU
mailing list