mirror of
https://github.com/systemd/systemd.git
synced 2024-11-24 02:33:36 +08:00
cgroup: rename cg_unified() → cg_unified_controller()
cg_unified() is a bit generic a name, let's make clear that it checks whether a specified controller is in unified mode.
This commit is contained in:
parent
b4cccbc13a
commit
c22800e40e
@ -933,7 +933,7 @@ int cg_set_task_access(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = cg_unified(controller);
|
||||
r = cg_unified_controller(controller);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r == 0) {
|
||||
@ -1008,7 +1008,7 @@ int cg_pid_get_path(const char *controller, pid_t pid, char **path) {
|
||||
} else
|
||||
controller = SYSTEMD_CGROUP_CONTROLLER;
|
||||
|
||||
unified = cg_unified(controller);
|
||||
unified = cg_unified_controller(controller);
|
||||
if (unified < 0)
|
||||
return unified;
|
||||
if (unified == 0) {
|
||||
@ -1083,7 +1083,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
|
||||
|
||||
assert(agent);
|
||||
|
||||
r = cg_unified(controller);
|
||||
r = cg_unified_controller(controller);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r > 0) /* doesn't apply to unified hierarchy */
|
||||
@ -1134,7 +1134,7 @@ int cg_uninstall_release_agent(const char *controller) {
|
||||
_cleanup_free_ char *fs = NULL;
|
||||
int r;
|
||||
|
||||
r = cg_unified(controller);
|
||||
r = cg_unified_controller(controller);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r > 0) /* Doesn't apply to unified hierarchy */
|
||||
@ -1190,7 +1190,7 @@ int cg_is_empty_recursive(const char *controller, const char *path) {
|
||||
if (controller && (isempty(path) || path_equal(path, "/")))
|
||||
return false;
|
||||
|
||||
r = cg_unified(controller);
|
||||
r = cg_unified_controller(controller);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r > 0) {
|
||||
@ -2342,17 +2342,14 @@ int cg_kernel_controllers(Set *controllers) {
|
||||
|
||||
static thread_local CGroupUnified unified_cache = CGROUP_UNIFIED_UNKNOWN;
|
||||
|
||||
/* The hybrid mode was initially implemented in v232 and simply mounted
|
||||
* cgroup v2 on /sys/fs/cgroup/systemd. This unfortunately broke other
|
||||
* tools (such as docker) which expected the v1 "name=systemd" hierarchy
|
||||
* on /sys/fs/cgroup/systemd. From v233 and on, the hybrid mode mountnbs
|
||||
* v2 on /sys/fs/cgroup/unified and maintains "name=systemd" hierarchy
|
||||
* on /sys/fs/cgroup/systemd for compatibility with other tools.
|
||||
/* The hybrid mode was initially implemented in v232 and simply mounted cgroup v2 on /sys/fs/cgroup/systemd. This
|
||||
* unfortunately broke other tools (such as docker) which expected the v1 "name=systemd" hierarchy on
|
||||
* /sys/fs/cgroup/systemd. From v233 and on, the hybrid mode mountnbs v2 on /sys/fs/cgroup/unified and maintains
|
||||
* "name=systemd" hierarchy on /sys/fs/cgroup/systemd for compatibility with other tools.
|
||||
*
|
||||
* To keep live upgrade working, we detect and support v232 layout. When
|
||||
* v232 layout is detected, to keep cgroup v2 process management but
|
||||
* disable the compat dual layout, we return %true on
|
||||
* cg_unified(SYSTEMD_CGROUP_CONTROLLER) and %false on cg_hybrid_unified().
|
||||
* To keep live upgrade working, we detect and support v232 layout. When v232 layout is detected, to keep cgroup v2
|
||||
* process management but disable the compat dual layout, we return %true on
|
||||
* cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER) and %false on cg_hybrid_unified().
|
||||
*/
|
||||
static thread_local bool unified_systemd_v232;
|
||||
|
||||
@ -2395,7 +2392,7 @@ static int cg_update_unified(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cg_unified(const char *controller) {
|
||||
int cg_unified_controller(const char *controller) {
|
||||
int r;
|
||||
|
||||
r = cg_update_unified();
|
||||
@ -2412,7 +2409,7 @@ int cg_unified(const char *controller) {
|
||||
}
|
||||
|
||||
int cg_all_unified(void) {
|
||||
return cg_unified(NULL);
|
||||
return cg_unified_controller(NULL);
|
||||
}
|
||||
|
||||
int cg_hybrid_unified(void) {
|
||||
|
@ -242,7 +242,7 @@ bool cg_ns_supported(void);
|
||||
|
||||
int cg_all_unified(void);
|
||||
int cg_hybrid_unified(void);
|
||||
int cg_unified(const char *controller);
|
||||
int cg_unified_controller(const char *controller);
|
||||
int cg_unified_flush(void);
|
||||
|
||||
bool cg_is_unified_wanted(void);
|
||||
|
@ -1259,7 +1259,7 @@ int unit_watch_cgroup(Unit *u) {
|
||||
return 0;
|
||||
|
||||
/* Only applies to the unified hierarchy */
|
||||
r = cg_unified(SYSTEMD_CGROUP_CONTROLLER);
|
||||
r = cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to determine whether the name=systemd hierarchy is unified: %m");
|
||||
if (r == 0)
|
||||
@ -1684,7 +1684,7 @@ int unit_watch_all_pids(Unit *u) {
|
||||
if (!u->cgroup_path)
|
||||
return -ENOENT;
|
||||
|
||||
r = cg_unified(SYSTEMD_CGROUP_CONTROLLER);
|
||||
r = cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r > 0) /* On unified we can use proper notifications */
|
||||
@ -1807,7 +1807,7 @@ int manager_setup_cgroup(Manager *m) {
|
||||
if (r > 0)
|
||||
log_debug("Unified cgroup hierarchy is located at %s.", path);
|
||||
else {
|
||||
r = cg_unified(SYSTEMD_CGROUP_CONTROLLER);
|
||||
r = cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to determine whether systemd's own controller is in unified mode: %m");
|
||||
if (r > 0)
|
||||
@ -1820,7 +1820,7 @@ int manager_setup_cgroup(Manager *m) {
|
||||
const char *scope_path;
|
||||
|
||||
/* 3. Install agent */
|
||||
if (cg_unified(SYSTEMD_CGROUP_CONTROLLER) > 0) {
|
||||
if (cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER) > 0) {
|
||||
|
||||
/* In the unified hierarchy we can get
|
||||
* cgroup empty notifications via inotify. */
|
||||
|
@ -776,7 +776,7 @@ static int manager_setup_cgroups_agent(Manager *m) {
|
||||
if (!MANAGER_IS_SYSTEM(m))
|
||||
return 0;
|
||||
|
||||
r = cg_unified(SYSTEMD_CGROUP_CONTROLLER);
|
||||
r = cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to determine whether unified cgroups hierarchy is used: %m");
|
||||
if (r > 0) /* We don't need this anymore on the unified hierarchy */
|
||||
|
@ -475,7 +475,7 @@ static void scope_sigchld_event(Unit *u, pid_t pid, int code, int status) {
|
||||
|
||||
/* If the PID set is empty now, then let's finish this off
|
||||
(On unified we use proper notifications) */
|
||||
if (cg_unified(SYSTEMD_CGROUP_CONTROLLER) == 0 && set_isempty(u->pids))
|
||||
if (cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER) == 0 && set_isempty(u->pids))
|
||||
scope_notify_cgroup_empty_event(u);
|
||||
}
|
||||
|
||||
|
@ -2938,7 +2938,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) {
|
||||
|
||||
/* If the PID set is empty now, then let's finish this off
|
||||
(On unified we use proper notifications) */
|
||||
if (cg_unified(SYSTEMD_CGROUP_CONTROLLER) == 0 && set_isempty(u->pids))
|
||||
if (cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER) == 0 && set_isempty(u->pids))
|
||||
service_notify_cgroup_empty_event(u);
|
||||
}
|
||||
|
||||
|
@ -3897,7 +3897,7 @@ int unit_kill_context(
|
||||
* there we get proper events. Hence rely on
|
||||
* them.*/
|
||||
|
||||
if (cg_unified(SYSTEMD_CGROUP_CONTROLLER) > 0 ||
|
||||
if (cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER) > 0 ||
|
||||
(detect_container() == 0 && !unit_cgroup_delegate(u)))
|
||||
wait_for_exit = true;
|
||||
|
||||
|
@ -80,7 +80,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t arg_uid_shift)
|
||||
const char *fn;
|
||||
int r, unified_controller;
|
||||
|
||||
unified_controller = cg_unified(SYSTEMD_CGROUP_CONTROLLER);
|
||||
unified_controller = cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER);
|
||||
if (unified_controller < 0)
|
||||
return log_error_errno(unified_controller, "Failed to determine whether the systemd hierarchy is unified: %m");
|
||||
if ((unified_controller > 0) == (unified_requested >= CGROUP_UNIFIED_SYSTEMD))
|
||||
@ -153,7 +153,7 @@ int create_subcgroup(pid_t pid, CGroupUnified unified_requested) {
|
||||
if (unified_requested == CGROUP_UNIFIED_NONE)
|
||||
return 0;
|
||||
|
||||
r = cg_unified(SYSTEMD_CGROUP_CONTROLLER);
|
||||
r = cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to determine whether the systemd controller is unified: %m");
|
||||
if (r == 0)
|
||||
|
@ -346,7 +346,7 @@ static int detect_unified_cgroup_hierarchy(const char *directory) {
|
||||
arg_unified_cgroup_hierarchy = CGROUP_UNIFIED_ALL;
|
||||
else
|
||||
arg_unified_cgroup_hierarchy = CGROUP_UNIFIED_NONE;
|
||||
} else if (cg_unified(SYSTEMD_CGROUP_CONTROLLER) > 0) {
|
||||
} else if (cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER) > 0) {
|
||||
/* Mixed cgroup hierarchy support was added in 233 */
|
||||
r = systemd_installation_has_version(directory, 233);
|
||||
if (r < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user