[CRIU] [PATCH 3/8] stats: add a helper to get stats of parent pre-dump
Pavel Tikhomirov
ptikhomirov at virtuozzo.com
Fri Feb 9 19:06:40 MSK 2018
will be used in the next patch
https://jira.sw.ru/browse/PSBM-67502
Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
---
criu/include/stats.h | 2 ++
criu/stats.c | 31 +++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/criu/include/stats.h b/criu/include/stats.h
index 81775c856..8694d9fb7 100644
--- a/criu/include/stats.h
+++ b/criu/include/stats.h
@@ -23,6 +23,8 @@ extern void timing_start(int t);
extern void timing_stop(int t);
extern int timing_uptime(int t);
+extern int get_parent_stats(void **se);
+
enum {
CNT_PAGES_SCANNED,
CNT_PAGES_SKIPPED_PARENT,
diff --git a/criu/stats.c b/criu/stats.c
index 2944474cd..5c05b1e68 100644
--- a/criu/stats.c
+++ b/criu/stats.c
@@ -213,6 +213,37 @@ void write_stats(int what)
display_stats(what, &stats);
}
+__maybe_unused int get_parent_stats(void **se)
+{
+ StatsEntry **stats = (StatsEntry **)se;
+ struct cr_img *img;
+ int dir;
+
+ dir = openat(get_service_fd(IMG_FD_OFF), CR_PARENT_LINK, O_RDONLY);
+ if (dir == -1) {
+ pr_perror("Failed to open parent directory");
+ return -1;
+ }
+
+ img = open_image_at(dir, CR_FD_STATS, O_RSTR, "dump");
+ if (!img) {
+ pr_perror("Failed to open parent dump stats");
+ close(dir);
+ return -1;
+ }
+
+ if (pb_read_one(img, stats, PB_STATS) < 0) {
+ pr_perror("Failed to read parent dump stats");
+ close_image(img);
+ close(dir);
+ return -1;
+ }
+
+ close_image(img);
+ close(dir);
+ return 0;
+}
+
int init_stats(int what)
{
if (what == DUMP_STATS) {
--
2.14.3
More information about the CRIU
mailing list