For cgroup v1, run a process in the child cgroup during the recursive cgdelete tests - 002-cgdelete-recursive_delete.py. In cgroup v1, cgdelete should migrate the process to its parent cgroup.
If the test is being run on a cgroup v2 system, don't create the process. Cgroup v2 doesn't support processes running in a non-leaf cgroup, so cgdelete's recursive command doesn't really make sense. Signed-off-by: Tom Hromatka <tom.hroma...@oracle.com> --- ftests/002-cgdelete-recursive_delete.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ftests/002-cgdelete-recursive_delete.py b/ftests/002-cgdelete-recursive_delete.py index 4f6123ae15bf..755b87a6f626 100755 --- a/ftests/002-cgdelete-recursive_delete.py +++ b/ftests/002-cgdelete-recursive_delete.py @@ -24,6 +24,7 @@ from cgroup import Cgroup import consts import ftests import os +from process import Process import sys CONTROLLER = 'cpuset' @@ -40,6 +41,17 @@ def setup(config): Cgroup.create(config, CONTROLLER, os.path.join(PARENT, CHILD)) Cgroup.create(config, CONTROLLER, os.path.join(PARENT, CHILD, GRANDCHILD)) + version = Cgroup.version(CONTROLLER) + if version == Cgroup.CGROUP_V1: + # cgdelete in a cgroup v1 controller should be able to move a process + # from a child cgroup to its parent. + # + # Moving a process from a child cgroup to its parent isn't (easily) + # supported in cgroup v2 because of cgroup v2's restriction that + # processes only be located in leaf cgroups + Process.create_process_in_cgroup(config, CONTROLLER, + os.path.join(PARENT, CHILD, GRANDCHILD)) + def test(config): Cgroup.delete(config, CONTROLLER, PARENT, recursive=True) -- 2.25.4 _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel