Before these we had host cgroup roots shown in CT after c/r: CT-9ef573e3 /# cat /proc/1/cgroup 16:ve:/ 15:pids:/machine.slice/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4 14:devices:/machine.slice/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4 13:freezer:/machine.slice/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4 12:perf_event:/machine.slice/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4 11:hugetlb:/machine.slice/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4 7:cpuacct,cpu:/machine.slice/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4 6:net_prio,net_cls:/machine.slice/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4 4:name=systemd:/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4 3:beancounter:/ 2:memory:/ 1:blkio:/machine.slice/9ef573e3-f11d-43f9-9ee3-17f4e19d03e4
https://jira.sw.ru/browse/PSBM-64756 Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com> --- criu/cr-restore.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/criu/cr-restore.c b/criu/cr-restore.c index eb9f50d8f..af9df5620 100644 --- a/criu/cr-restore.c +++ b/criu/cr-restore.c @@ -1617,20 +1617,29 @@ static int restore_task_with_children(void *_arg) goto err; } - /* Wait prepare_userns */ - if (current->parent == NULL && - restore_finish_ns_stage(CR_STATE_ROOT_TASK, CR_STATE_PREPARE_NAMESPACES) < 0) - goto err; - /* * Call this _before_ forking to optimize cgroups * restore -- if all tasks live in one set of cgroups * we will only move the root one there, others will * just have it inherited. + * + * Call this _before_ CR_STATE_PREPARE_NAMESPACES so + * that setup-namespaces action script is called then + * the root task is already in all it's cgroups. We + * need it as we write START to ve cgroup from these + * action script, and these initializes ve cgroup. + * In it's turn these initialization sets CGRP_VE_ROOT + * bits on each cgroup of init task, so that we know + * that they are root. */ if (prepare_task_cgroup(current) < 0) goto err; + /* Wait prepare_userns */ + if (current->parent == NULL && + restore_finish_ns_stage(CR_STATE_ROOT_TASK, CR_STATE_PREPARE_NAMESPACES) < 0) + goto err; + /* Restore root task */ if (current->parent == NULL) { if (fdstore_init()) -- 2.13.5 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel