mirror of
https://github.com/systemd/systemd.git
synced 2024-11-02 02:21:44 +03:00
cgroup: when discovering which controllers the kernel supports mask with what we support
Let's use our new CGROUP_MASK_V1 and CGROUP_MASK_V2 definitions for this.
This commit is contained in:
parent
ab275f2386
commit
03afd78029
@ -2377,24 +2377,26 @@ int cg_mask_supported(CGroupMask *ret) {
|
|||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
/* Currently, we support the cpu, memory, io and pids
|
/* Currently, we support the cpu, memory, io and pids controller in the unified hierarchy, mask
|
||||||
* controller in the unified hierarchy, mask
|
|
||||||
* everything else off. */
|
* everything else off. */
|
||||||
mask &= CGROUP_MASK_CPU | CGROUP_MASK_MEMORY | CGROUP_MASK_IO | CGROUP_MASK_PIDS;
|
mask &= CGROUP_MASK_V2;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
CGroupController c;
|
CGroupController c;
|
||||||
|
|
||||||
/* In the legacy hierarchy, we check whether which
|
/* In the legacy hierarchy, we check which hierarchies are mounted. */
|
||||||
* hierarchies are mounted. */
|
|
||||||
|
|
||||||
mask = 0;
|
mask = 0;
|
||||||
for (c = 0; c < _CGROUP_CONTROLLER_MAX; c++) {
|
for (c = 0; c < _CGROUP_CONTROLLER_MAX; c++) {
|
||||||
|
CGroupMask bit = CGROUP_CONTROLLER_TO_MASK(c);
|
||||||
const char *n;
|
const char *n;
|
||||||
|
|
||||||
|
if (!FLAGS_SET(CGROUP_MASK_V1, bit))
|
||||||
|
continue;
|
||||||
|
|
||||||
n = cgroup_controller_to_string(c);
|
n = cgroup_controller_to_string(c);
|
||||||
if (controller_is_accessible(n) >= 0)
|
if (controller_is_accessible(n) >= 0)
|
||||||
mask |= CGROUP_CONTROLLER_TO_MASK(c);
|
mask |= bit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user