[LTP] [PATCH 5/6] API/cgroups: Auto add controllers to subtree_control in new subgroup

Cyril Hrubis chrubis@suse.cz
Wed May 19 13:41:24 CEST 2021


Hi!
> -	if (dir->dir_root->ver == TST_CGROUP_V2)
> +	if (dir->dir_root->ver != TST_CGROUP_V1)
>  		cg->dirs_by_ctrl[0] = dir;

This change is useless, isn't it?

>  	for_each_ctrl(ctrl) {
> -		if (has_ctrl(dir->ctrl_field, ctrl))
> -			cg->dirs_by_ctrl[ctrl->ctrl_indx] = dir;
> +		if (!has_ctrl(dir->ctrl_field, ctrl))
> +			continue;
> +
> +		cg->dirs_by_ctrl[ctrl->ctrl_indx] = dir;
> +
> +		if (!parent || dir->dir_root->ver == TST_CGROUP_V1)
> +			continue;
> +
> +		SAFE_CGROUP_PRINTF(parent, "cgroup.subtree_control",
> +				   "+%s", ctrl->ctrl_name);
>  	}

Looks good. Agree that we should copy the controllers from parent here
for V2.

>  	for (i = 0; cg->dirs[i]; i++);
> @@ -876,7 +885,7 @@ tst_cgroup_group_mk(const struct tst_cgroup_group *const parent,
>  	for_each_dir(parent, 0, dir) {
>  		new_dir = SAFE_MALLOC(sizeof(*new_dir));
>  		cgroup_dir_mk(*dir, group_name, new_dir);
> -		cgroup_group_add_dir(cg, new_dir);
> +		cgroup_group_add_dir(parent, cg, new_dir);
>  	}
>  
>  	return cg;
> @@ -1029,7 +1038,7 @@ static struct tst_cgroup_group *cgroup_group_from_roots(const size_t tree_off)
>  		dir = (typeof(dir))(((char *)root) + tree_off);
>  
>  		if (dir->ctrl_field)
> -			cgroup_group_add_dir(cg, dir);
> +			cgroup_group_add_dir(NULL, cg, dir);
>  	}
>  
>  	if (cg->dirs[0]) {

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list