Lines Matching refs:cgroup

27 static int cg_check_frozen(const char *cgroup, bool frozen)  in cg_check_frozen()  argument
30 if (cg_read_strstr(cgroup, "cgroup.events", "frozen 1") != 0) { in cg_check_frozen()
31 debug("Cgroup %s isn't frozen\n", cgroup); in cg_check_frozen()
38 if (cg_read_strstr(cgroup, "cgroup.events", "frozen 0") != 0) { in cg_check_frozen()
39 debug("Cgroup %s is frozen\n", cgroup); in cg_check_frozen()
50 static int cg_freeze_nowait(const char *cgroup, bool freeze) in cg_freeze_nowait() argument
52 return cg_write(cgroup, "cgroup.freeze", freeze ? "1" : "0"); in cg_freeze_nowait()
59 static int cg_enter_and_wait_for_frozen(const char *cgroup, int pid, in cg_enter_and_wait_for_frozen() argument
65 fd = cg_prepare_for_wait(cgroup); in cg_enter_and_wait_for_frozen()
69 ret = cg_enter(cgroup, pid); in cg_enter_and_wait_for_frozen()
78 ret = cg_check_frozen(cgroup, frozen); in cg_enter_and_wait_for_frozen()
93 static int cg_freeze_wait(const char *cgroup, bool freeze) in cg_freeze_wait() argument
97 fd = cg_prepare_for_wait(cgroup); in cg_freeze_wait()
101 ret = cg_freeze_nowait(cgroup, freeze); in cg_freeze_wait()
111 ret = cg_check_frozen(cgroup, freeze); in cg_freeze_wait()
121 static int child_fn(const char *cgroup, void *arg) in child_fn() argument
139 char *cgroup = NULL; in test_cgfreezer_simple() local
142 cgroup = cg_name(root, "cg_test_simple"); in test_cgfreezer_simple()
143 if (!cgroup) in test_cgfreezer_simple()
146 if (cg_create(cgroup)) in test_cgfreezer_simple()
150 cg_run_nowait(cgroup, child_fn, NULL); in test_cgfreezer_simple()
152 if (cg_wait_for_proc_count(cgroup, 100)) in test_cgfreezer_simple()
155 if (cg_check_frozen(cgroup, false)) in test_cgfreezer_simple()
158 if (cg_freeze_wait(cgroup, true)) in test_cgfreezer_simple()
161 if (cg_freeze_wait(cgroup, false)) in test_cgfreezer_simple()
167 if (cgroup) in test_cgfreezer_simple()
168 cg_destroy(cgroup); in test_cgfreezer_simple()
169 free(cgroup); in test_cgfreezer_simple()
190 char *cgroup[10] = {0}; in test_cgfreezer_tree() local
194 cgroup[0] = cg_name(root, "cg_test_tree_A"); in test_cgfreezer_tree()
195 if (!cgroup[0]) in test_cgfreezer_tree()
198 cgroup[1] = cg_name(cgroup[0], "B"); in test_cgfreezer_tree()
199 if (!cgroup[1]) in test_cgfreezer_tree()
202 cgroup[2] = cg_name(cgroup[1], "C"); in test_cgfreezer_tree()
203 if (!cgroup[2]) in test_cgfreezer_tree()
206 cgroup[3] = cg_name(cgroup[1], "D"); in test_cgfreezer_tree()
207 if (!cgroup[3]) in test_cgfreezer_tree()
210 cgroup[4] = cg_name(cgroup[0], "E"); in test_cgfreezer_tree()
211 if (!cgroup[4]) in test_cgfreezer_tree()
214 cgroup[5] = cg_name(cgroup[4], "F"); in test_cgfreezer_tree()
215 if (!cgroup[5]) in test_cgfreezer_tree()
218 cgroup[6] = cg_name(cgroup[5], "G"); in test_cgfreezer_tree()
219 if (!cgroup[6]) in test_cgfreezer_tree()
222 cgroup[7] = cg_name(cgroup[6], "H"); in test_cgfreezer_tree()
223 if (!cgroup[7]) in test_cgfreezer_tree()
226 cgroup[8] = cg_name(cgroup[0], "I"); in test_cgfreezer_tree()
227 if (!cgroup[8]) in test_cgfreezer_tree()
230 cgroup[9] = cg_name(cgroup[0], "K"); in test_cgfreezer_tree()
231 if (!cgroup[9]) in test_cgfreezer_tree()
235 if (cg_create(cgroup[i])) in test_cgfreezer_tree()
238 cg_run_nowait(cgroup[2], child_fn, NULL); in test_cgfreezer_tree()
239 cg_run_nowait(cgroup[7], child_fn, NULL); in test_cgfreezer_tree()
240 cg_run_nowait(cgroup[9], child_fn, NULL); in test_cgfreezer_tree()
241 cg_run_nowait(cgroup[9], child_fn, NULL); in test_cgfreezer_tree()
242 cg_run_nowait(cgroup[9], child_fn, NULL); in test_cgfreezer_tree()
249 if (cg_wait_for_proc_count(cgroup[2], 1) || in test_cgfreezer_tree()
250 cg_wait_for_proc_count(cgroup[7], 1) || in test_cgfreezer_tree()
251 cg_wait_for_proc_count(cgroup[9], 3)) in test_cgfreezer_tree()
257 if (cg_freeze_wait(cgroup[1], true)) in test_cgfreezer_tree()
263 if (cg_freeze_wait(cgroup[5], true)) in test_cgfreezer_tree()
269 if (cg_freeze_wait(cgroup[6], true)) in test_cgfreezer_tree()
275 if (cg_check_frozen(cgroup[0], false)) in test_cgfreezer_tree()
278 if (cg_check_frozen(cgroup[4], false)) in test_cgfreezer_tree()
284 if (cg_freeze_wait(cgroup[0], true)) in test_cgfreezer_tree()
287 if (cg_check_frozen(cgroup[1], true)) in test_cgfreezer_tree()
290 if (cg_check_frozen(cgroup[4], true)) in test_cgfreezer_tree()
296 if (cg_freeze_nowait(cgroup[1], false)) in test_cgfreezer_tree()
299 if (cg_freeze_nowait(cgroup[5], false)) in test_cgfreezer_tree()
302 if (cg_freeze_nowait(cgroup[6], false)) in test_cgfreezer_tree()
308 if (cg_check_frozen(cgroup[2], true)) in test_cgfreezer_tree()
311 if (cg_check_frozen(cgroup[7], true)) in test_cgfreezer_tree()
317 if (cg_freeze_wait(cgroup[0], false)) in test_cgfreezer_tree()
320 if (cg_check_frozen(cgroup[2], false)) in test_cgfreezer_tree()
323 if (cg_check_frozen(cgroup[9], false)) in test_cgfreezer_tree()
329 for (i = 9; i >= 0 && cgroup[i]; i--) { in test_cgfreezer_tree()
330 cg_destroy(cgroup[i]); in test_cgfreezer_tree()
331 free(cgroup[i]); in test_cgfreezer_tree()
340 static int forkbomb_fn(const char *cgroup, void *arg) in forkbomb_fn() argument
363 char *cgroup = NULL; in test_cgfreezer_forkbomb() local
365 cgroup = cg_name(root, "cg_forkbomb_test"); in test_cgfreezer_forkbomb()
366 if (!cgroup) in test_cgfreezer_forkbomb()
369 if (cg_create(cgroup)) in test_cgfreezer_forkbomb()
372 cg_run_nowait(cgroup, forkbomb_fn, NULL); in test_cgfreezer_forkbomb()
376 if (cg_freeze_wait(cgroup, true)) in test_cgfreezer_forkbomb()
379 if (cg_killall(cgroup)) in test_cgfreezer_forkbomb()
382 if (cg_wait_for_proc_count(cgroup, 0)) in test_cgfreezer_forkbomb()
388 if (cgroup) in test_cgfreezer_forkbomb()
389 cg_destroy(cgroup); in test_cgfreezer_forkbomb()
390 free(cgroup); in test_cgfreezer_forkbomb()
511 char *cgroup[2] = {0}; in test_cgfreezer_migrate() local
514 cgroup[0] = cg_name(root, "cg_test_migrate_A"); in test_cgfreezer_migrate()
515 if (!cgroup[0]) in test_cgfreezer_migrate()
518 cgroup[1] = cg_name(root, "cg_test_migrate_B"); in test_cgfreezer_migrate()
519 if (!cgroup[1]) in test_cgfreezer_migrate()
522 if (cg_create(cgroup[0])) in test_cgfreezer_migrate()
525 if (cg_create(cgroup[1])) in test_cgfreezer_migrate()
528 pid = cg_run_nowait(cgroup[0], child_fn, NULL); in test_cgfreezer_migrate()
532 if (cg_wait_for_proc_count(cgroup[0], 1)) in test_cgfreezer_migrate()
538 if (cg_freeze_wait(cgroup[1], true)) in test_cgfreezer_migrate()
541 if (cg_enter_and_wait_for_frozen(cgroup[1], pid, true)) in test_cgfreezer_migrate()
544 if (cg_check_frozen(cgroup[0], false)) in test_cgfreezer_migrate()
550 if (cg_enter_and_wait_for_frozen(cgroup[0], pid, false)) in test_cgfreezer_migrate()
553 if (cg_check_frozen(cgroup[1], true)) in test_cgfreezer_migrate()
559 if (cg_freeze_wait(cgroup[0], true)) in test_cgfreezer_migrate()
562 if (cg_enter_and_wait_for_frozen(cgroup[1], pid, true)) in test_cgfreezer_migrate()
565 if (cg_check_frozen(cgroup[0], true)) in test_cgfreezer_migrate()
571 if (cgroup[0]) in test_cgfreezer_migrate()
572 cg_destroy(cgroup[0]); in test_cgfreezer_migrate()
573 free(cgroup[0]); in test_cgfreezer_migrate()
574 if (cgroup[1]) in test_cgfreezer_migrate()
575 cg_destroy(cgroup[1]); in test_cgfreezer_migrate()
576 free(cgroup[1]); in test_cgfreezer_migrate()
586 char *cgroup = NULL; in test_cgfreezer_ptrace() local
590 cgroup = cg_name(root, "cg_test_ptrace"); in test_cgfreezer_ptrace()
591 if (!cgroup) in test_cgfreezer_ptrace()
594 if (cg_create(cgroup)) in test_cgfreezer_ptrace()
597 pid = cg_run_nowait(cgroup, child_fn, NULL); in test_cgfreezer_ptrace()
601 if (cg_wait_for_proc_count(cgroup, 1)) in test_cgfreezer_ptrace()
604 if (cg_freeze_wait(cgroup, true)) in test_cgfreezer_ptrace()
619 if (cg_check_frozen(cgroup, true)) in test_cgfreezer_ptrace()
628 if (cg_check_frozen(cgroup, true)) in test_cgfreezer_ptrace()
634 if (cgroup) in test_cgfreezer_ptrace()
635 cg_destroy(cgroup); in test_cgfreezer_ptrace()
636 free(cgroup); in test_cgfreezer_ptrace()
668 char *cgroup = NULL; in test_cgfreezer_stopped() local
670 cgroup = cg_name(root, "cg_test_stopped"); in test_cgfreezer_stopped()
671 if (!cgroup) in test_cgfreezer_stopped()
674 if (cg_create(cgroup)) in test_cgfreezer_stopped()
677 pid = cg_run_nowait(cgroup, child_fn, NULL); in test_cgfreezer_stopped()
679 if (cg_wait_for_proc_count(cgroup, 1)) in test_cgfreezer_stopped()
685 if (cg_check_frozen(cgroup, false)) in test_cgfreezer_stopped()
688 if (cg_freeze_wait(cgroup, true)) in test_cgfreezer_stopped()
691 if (cg_freeze_wait(cgroup, false)) in test_cgfreezer_stopped()
700 if (cgroup) in test_cgfreezer_stopped()
701 cg_destroy(cgroup); in test_cgfreezer_stopped()
702 free(cgroup); in test_cgfreezer_stopped()
712 char *cgroup = NULL; in test_cgfreezer_ptraced() local
715 cgroup = cg_name(root, "cg_test_ptraced"); in test_cgfreezer_ptraced()
716 if (!cgroup) in test_cgfreezer_ptraced()
719 if (cg_create(cgroup)) in test_cgfreezer_ptraced()
722 pid = cg_run_nowait(cgroup, child_fn, NULL); in test_cgfreezer_ptraced()
724 if (cg_wait_for_proc_count(cgroup, 1)) in test_cgfreezer_ptraced()
735 if (cg_check_frozen(cgroup, false)) in test_cgfreezer_ptraced()
738 if (cg_freeze_wait(cgroup, true)) in test_cgfreezer_ptraced()
745 if (cg_freeze_wait(cgroup, false)) in test_cgfreezer_ptraced()
757 if (cgroup) in test_cgfreezer_ptraced()
758 cg_destroy(cgroup); in test_cgfreezer_ptraced()
759 free(cgroup); in test_cgfreezer_ptraced()
763 static int vfork_fn(const char *cgroup, void *arg) in vfork_fn() argument
781 char *cgroup = NULL; in test_cgfreezer_vfork() local
783 cgroup = cg_name(root, "cg_test_vfork"); in test_cgfreezer_vfork()
784 if (!cgroup) in test_cgfreezer_vfork()
787 if (cg_create(cgroup)) in test_cgfreezer_vfork()
790 cg_run_nowait(cgroup, vfork_fn, NULL); in test_cgfreezer_vfork()
792 if (cg_wait_for_proc_count(cgroup, 2)) in test_cgfreezer_vfork()
795 if (cg_freeze_wait(cgroup, true)) in test_cgfreezer_vfork()
801 if (cgroup) in test_cgfreezer_vfork()
802 cg_destroy(cgroup); in test_cgfreezer_vfork()
803 free(cgroup); in test_cgfreezer_vfork()