diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-09-23 21:56:05 -0500 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-09-25 03:38:17 +0200 |
commit | 13b84ec7df103ce388910a2b868fe1668c1e27ef (patch) | |
tree | 773d34a85343a61b3368ef5a67a156ffcf14689a /src/shared/cgroup-util.h | |
parent | 8bd94f7a03032ac9218e88e8e099e974627a3bcb (diff) |
cgroup: if we do a cgroup operation then do something on all supported controllers
Previously we did operations like attach, trim or migrate only on the
controllers that were enabled for a specific unit. With this changes we
will now do them for all supproted controllers, and fall back to all
possible prefix paths if the specified paths do not exist.
This fixes issues if a controller is being disabled for a unit where it
was previously enabled, and makes sure that all processes stay as "far
down" the tree as groups exist.
Diffstat (limited to 'src/shared/cgroup-util.h')
-rw-r--r-- | src/shared/cgroup-util.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/shared/cgroup-util.h b/src/shared/cgroup-util.h index 0fc93c12c8..0963450b08 100644 --- a/src/shared/cgroup-util.h +++ b/src/shared/cgroup-util.h @@ -64,6 +64,7 @@ int cg_kill_recursive_and_wait(const char *controller, const char *path, bool re int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self); int cg_migrate_recursive(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self, bool remove); +int cg_migrate_recursive_fallback(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self, bool rem); int cg_split_spec(const char *spec, char **controller, char **path); int cg_join_spec(const char *controller, const char *path, char **spec); @@ -81,6 +82,7 @@ int cg_delete(const char *controller, const char *path); int cg_create(const char *controller, const char *path); int cg_attach(const char *controller, const char *path, pid_t pid); +int cg_attach_fallback(const char *controller, const char *path, pid_t pid); int cg_create_and_attach(const char *controller, const char *path, pid_t pid); int cg_set_attribute(const char *controller, const char *path, const char *attribute, const char *value); @@ -126,10 +128,10 @@ bool cg_controller_is_valid(const char *p, bool allow_named); int cg_slice_to_path(const char *unit, char **ret); -int cg_create_with_mask(CGroupControllerMask mask, const char *path); -int cg_attach_with_mask(CGroupControllerMask mask, const char *path, pid_t pid); -int cg_attach_many_with_mask(CGroupControllerMask mask, const char *path, Set* pids); -int cg_migrate_with_mask(CGroupControllerMask mask, const char *from, const char *to); -int cg_trim_with_mask(CGroupControllerMask mask, const char *path, bool delete_root); +int cg_create_everywhere(CGroupControllerMask supported, CGroupControllerMask mask, const char *path); +int cg_attach_everywhere(CGroupControllerMask supported, const char *path, pid_t pid); +int cg_attach_many_everywhere(CGroupControllerMask supported, const char *path, Set* pids); +int cg_migrate_everywhere(CGroupControllerMask supported, const char *from, const char *to); +int cg_trim_everywhere(CGroupControllerMask supported, const char *path, bool delete_root); CGroupControllerMask cg_mask_supported(void); |