Lines Matching refs:cgroup

75 char *cg_control(const char *cgroup, const char *control)  in cg_control()  argument
77 size_t len = strlen(cgroup) + strlen(control) + 2; in cg_control()
80 snprintf(ret, len, "%s/%s", cgroup, control); in cg_control()
86 int cg_read(const char *cgroup, const char *control, char *buf, size_t len) in cg_read() argument
91 snprintf(path, sizeof(path), "%s/%s", cgroup, control); in cg_read()
97 int cg_read_strcmp(const char *cgroup, const char *control, in cg_read_strcmp() argument
114 if (cg_read(cgroup, control, buf, size)) { in cg_read_strcmp()
124 int cg_read_strstr(const char *cgroup, const char *control, const char *needle) in cg_read_strstr() argument
128 if (cg_read(cgroup, control, buf, sizeof(buf))) in cg_read_strstr()
134 long cg_read_long(const char *cgroup, const char *control) in cg_read_long() argument
138 if (cg_read(cgroup, control, buf, sizeof(buf))) in cg_read_long()
144 long cg_read_key_long(const char *cgroup, const char *control, const char *key) in cg_read_key_long() argument
149 if (cg_read(cgroup, control, buf, sizeof(buf))) in cg_read_key_long()
159 long cg_read_lc(const char *cgroup, const char *control) in cg_read_lc() argument
166 if (cg_read(cgroup, control, buf, sizeof(buf))) in cg_read_lc()
176 int cg_write(const char *cgroup, const char *control, char *buf) in cg_write() argument
181 snprintf(path, sizeof(path), "%s/%s", cgroup, control); in cg_write()
186 int cg_write_numeric(const char *cgroup, const char *control, long value) in cg_write_numeric() argument
195 return cg_write(cgroup, control, buf); in cg_write_numeric()
227 int cg_create(const char *cgroup) in cg_create() argument
229 return mkdir(cgroup, 0755); in cg_create()
232 int cg_wait_for_proc_count(const char *cgroup, int count) in cg_wait_for_proc_count() argument
241 if (cg_read(cgroup, "cgroup.procs", buf, sizeof(buf))) in cg_wait_for_proc_count()
257 int cg_killall(const char *cgroup) in cg_killall() argument
263 if (!cg_write(cgroup, "cgroup.kill", "1")) in cg_killall()
266 if (cg_read(cgroup, "cgroup.procs", buf, sizeof(buf))) in cg_killall()
285 int cg_destroy(const char *cgroup) in cg_destroy() argument
290 ret = rmdir(cgroup); in cg_destroy()
292 cg_killall(cgroup); in cg_destroy()
303 int cg_enter(const char *cgroup, int pid) in cg_enter() argument
308 return cg_write(cgroup, "cgroup.procs", pidbuf); in cg_enter()
311 int cg_enter_current(const char *cgroup) in cg_enter_current() argument
313 return cg_write(cgroup, "cgroup.procs", "0"); in cg_enter_current()
316 int cg_enter_current_thread(const char *cgroup) in cg_enter_current_thread() argument
318 return cg_write(cgroup, "cgroup.threads", "0"); in cg_enter_current_thread()
321 int cg_run(const char *cgroup, in cg_run() argument
322 int (*fn)(const char *cgroup, void *arg), in cg_run() argument
334 if (cg_write(cgroup, "cgroup.procs", buf)) in cg_run()
336 exit(fn(cgroup, arg)); in cg_run()
354 .cgroup = cgroup_fd, in clone_into_cgroup()
419 static int clone_into_cgroup_run_nowait(const char *cgroup, in clone_into_cgroup_run_nowait() argument
420 int (*fn)(const char *cgroup, void *arg), in clone_into_cgroup_run_nowait() argument
426 cgroup_fd = dirfd_open_opath(cgroup); in clone_into_cgroup_run_nowait()
433 exit(fn(cgroup, arg)); in clone_into_cgroup_run_nowait()
438 int cg_run_nowait(const char *cgroup, in cg_run_nowait() argument
439 int (*fn)(const char *cgroup, void *arg), in cg_run_nowait() argument
444 pid = clone_into_cgroup_run_nowait(cgroup, fn, arg); in cg_run_nowait()
457 if (cg_write(cgroup, "cgroup.procs", buf)) in cg_run_nowait()
459 exit(fn(cgroup, arg)); in cg_run_nowait()
493 int alloc_anon(const char *cgroup, void *arg) in alloc_anon() argument
580 int clone_into_cgroup_run_wait(const char *cgroup) in clone_into_cgroup_run_wait() argument
585 cgroup_fd = dirfd_open_opath(cgroup); in clone_into_cgroup_run_wait()
605 static int __prepare_for_wait(const char *cgroup, const char *filename) in __prepare_for_wait() argument
613 ret = inotify_add_watch(fd, cg_control(cgroup, filename), IN_MODIFY); in __prepare_for_wait()
622 int cg_prepare_for_wait(const char *cgroup) in cg_prepare_for_wait() argument
624 return __prepare_for_wait(cgroup, "cgroup.events"); in cg_prepare_for_wait()
627 int memcg_prepare_for_wait(const char *cgroup) in memcg_prepare_for_wait() argument
629 return __prepare_for_wait(cgroup, "memory.events"); in memcg_prepare_for_wait()