[Devel] [PATCH RH9 v2 5/5] cgroup: show and allow mounting of cgroup-v2 in containers
Pavel Tikhomirov
ptikhomirov at virtuozzo.com
Wed Sep 6 06:14:09 MSK 2023
The change in is_virtualized_cgroot makes cgroup-v2 "virtualized" only
when it has enabled subsystems in it. And "virtualized" means that it
will be:
a) shown in different cgroup related proc files in container,
b) allowed to be mounted in container and
c) required to have separate root directory for container
Note: we don't expect cgroup-v2 root to change enabled controllers, it
either has no controllers or has at least one all the way.
Note: cgroup-v2 has one hierarchy for all controllers, so skipping misc
and debug for vzctl is not required anymore.
Add FS_VIRTUALIZED to cgroup2 to allow mounting in container.
https://jira.vzint.dev/browse/PSBM-149975
Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
---
kernel/cgroup/cgroup.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 945130057a30..d902e675598d 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -2060,18 +2060,16 @@ struct ve_struct *get_curr_ve(void)
*/
static inline bool is_virtualized_cgroot(struct cgroup_root *cgroot)
{
- /* Cgroup v2 */
- if (cgroot == &cgrp_dfl_root)
- return false;
-
+ if (cgroot != &cgrp_dfl_root) {
#if IS_ENABLED(CONFIG_CGROUP_DEBUG)
- if (cgroot->subsys_mask & (1 << debug_cgrp_id))
- return false;
+ if (cgroot->subsys_mask & (1 << debug_cgrp_id))
+ return false;
#endif
#if IS_ENABLED(CONFIG_CGROUP_MISC)
- if (cgroot->subsys_mask & (1 << misc_cgrp_id))
- return false;
+ if (cgroot->subsys_mask & (1 << misc_cgrp_id))
+ return false;
#endif
+ }
if (cgroot->subsys_mask)
return true;
@@ -2628,7 +2626,7 @@ static struct file_system_type cgroup2_fs_type = {
.init_fs_context = cgroup_init_fs_context,
.parameters = cgroup2_fs_parameters,
.kill_sb = cgroup_kill_sb,
- .fs_flags = FS_USERNS_MOUNT,
+ .fs_flags = FS_USERNS_MOUNT | FS_VIRTUALIZED,
};
#ifdef CONFIG_CPUSETS
--
2.41.0
More information about the Devel
mailing list