aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyril Hrubis <chrubis@suse.cz>2016-01-20 21:26:55 +0100
committerCyril Hrubis <chrubis@suse.cz>2016-01-25 11:05:38 +0100
commite47c80e64652dc07bb15a66857c295e756e70809 (patch)
tree60ba4ae94f12ef34424c8ac5fb0ad5e7c8bb7a89
parentc615f1127383eec550e86785ed7cb20b61eb8268 (diff)
controllers: cgroup_fj: Partial rewrite
Most of the functionality has been preserved. The main changes are: --------------------- Changed the testcases to use test.sh. Got rid of bashisms. The code is much more clean now :). The testcases no longer move all system processes into test subgroups which has proven to be troublesome for a few reasons. The main one was that when the testcase failed to clean up the system ended up half-functioning. The other was that this did not scale up reasonably as the runtime depends on number of processes and there were systems (with large amounts of CPUs and RAM and slightly older kernel) where only one of the stress tests took about hour. The stress tests should now take at most a few minutes each (at least they all took less than five minutes on slowest machine I had) and the run should be < 1h on reasonably fast machine. I've also removed the ns namespace testcases since I haven't tested these and discussion on ML suggested that ns namespace needs some extra steps. We may add them later. Another TODO is proper release agent testing, but since the original code didn't actually test it (the code checked if release agent could be set but that was all it tested) I've omitted it for now as well. Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
-rw-r--r--runtest/controllers636
-rw-r--r--testcases/kernel/controllers/cgroup_fj/README56
-rwxr-xr-xtestcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh125
-rwxr-xr-xtestcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh401
-rwxr-xr-xtestcases/kernel/controllers/cgroup_fj/cgroup_fj_function2.sh203
-rwxr-xr-xtestcases/kernel/controllers/cgroup_fj/cgroup_fj_release_agent11
-rwxr-xr-xtestcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh339
-rwxr-xr-xtestcases/kernel/controllers/cgroup_fj/cgroup_fj_utility.sh569
-rwxr-xr-xtestcases/kernel/controllers/cgroup_fj/run_cgroup_test_fj.sh122
9 files changed, 732 insertions, 1730 deletions
diff --git a/runtest/controllers b/runtest/controllers
index 8be4ba0a1..1a44324b4 100644
--- a/runtest/controllers
+++ b/runtest/controllers
@@ -11,330 +11,318 @@ memcg_usage_in_bytes memcg_usage_in_bytes_test.sh
memcg_stress memcg_stress_test.sh
memcg_control PAGESIZE=$(mem_process -p);memcg_control_test.sh $PAGESIZE $PAGESIZE $((PAGESIZE * 2))
-cgroup_fj_function_debug_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 2 1
-cgroup_fj_function_debug_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function debug no 1 yes 2 3 2 1
-cgroup_fj_function_debug_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 2 yes 2 3 2 1
-cgroup_fj_function_debug_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 2 1
-cgroup_fj_function_debug_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 4 yes 2 3 2 1
-cgroup_fj_function_debug_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 5 yes 2 3 2 1
-cgroup_fj_function_debug_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 6 yes 2 3 2 1
-cgroup_fj_function_debug_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 7 yes 2 3 2 1
-cgroup_fj_function_debug_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 8 yes 2 3 2 1
-cgroup_fj_function_cpuset_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset yes 1 yes 2 3 2 1
-cgroup_fj_function_cpuset_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset no 1 yes 2 3 2 1
-cgroup_fj_function_cpuset_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset yes 2 yes 2 3 2 1
-cgroup_fj_function_cpuset_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset yes 3 yes 2 3 2 1
-cgroup_fj_function_cpuset_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset yes 4 yes 2 3 2 1
-cgroup_fj_function_cpuset_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset yes 5 yes 2 3 2 1
-cgroup_fj_function_cpuset_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset yes 6 yes 2 3 2 1
-cgroup_fj_function_cpuset_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset yes 7 yes 2 3 2 1
-cgroup_fj_function_cpuset_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuset yes 8 yes 2 3 2 1
-cgroup_fj_function_ns_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function ns yes 1 yes 2 3 2 1
-cgroup_fj_function_ns_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function ns no 1 yes 2 3 2 1
-cgroup_fj_function_ns_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function ns yes 2 yes 2 3 2 1
-cgroup_fj_function_ns_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function ns yes 3 yes 2 3 2 1
-cgroup_fj_function_ns_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function ns yes 4 yes 2 3 2 1
-cgroup_fj_function_ns_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function ns yes 5 yes 2 3 2 1
-cgroup_fj_function_ns_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function ns yes 6 yes 2 3 2 1
-cgroup_fj_function_ns_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function ns yes 7 yes 2 3 2 1
-cgroup_fj_function_ns_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function ns yes 8 yes 2 3 2 1
-cgroup_fj_function_cpu_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu yes 1 yes 2 3 2 1
-cgroup_fj_function_cpu_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu no 1 yes 2 3 2 1
-cgroup_fj_function_cpu_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu yes 2 yes 2 3 2 1
-cgroup_fj_function_cpu_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu yes 3 yes 2 3 2 1
-cgroup_fj_function_cpu_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu yes 4 yes 2 3 2 1
-cgroup_fj_function_cpu_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu yes 5 yes 2 3 2 1
-cgroup_fj_function_cpu_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu yes 6 yes 2 3 2 1
-cgroup_fj_function_cpu_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu yes 7 yes 2 3 2 1
-cgroup_fj_function_cpu_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function cpu yes 8 yes 2 3 2 1
-cgroup_fj_function_cpuacct_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct yes 1 yes 2 3 2 1
-cgroup_fj_function_cpuacct_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct no 1 yes 2 3 2 1
-cgroup_fj_function_cpuacct_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct yes 2 yes 2 3 2 1
-cgroup_fj_function_cpuacct_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct yes 3 yes 2 3 2 1
-cgroup_fj_function_cpuacct_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct yes 4 yes 2 3 2 1
-cgroup_fj_function_cpuacct_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct yes 5 yes 2 3 2 1
-cgroup_fj_function_cpuacct_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct yes 6 yes 2 3 2 1
-cgroup_fj_function_cpuacct_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct yes 7 yes 2 3 2 1
-cgroup_fj_function_cpuacct_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function cpuacct yes 8 yes 2 3 2 1
-cgroup_fj_function_memory_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function memory yes 1 yes 2 3 2 1
-cgroup_fj_function_memory_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function memory no 1 yes 2 3 2 1
-cgroup_fj_function_memory_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function memory yes 2 yes 2 3 2 1
-cgroup_fj_function_memory_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function memory yes 3 yes 2 3 2 1
-cgroup_fj_function_memory_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function memory yes 4 yes 2 3 2 1
-cgroup_fj_function_memory_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function memory yes 5 yes 2 3 2 1
-cgroup_fj_function_memory_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function memory yes 6 yes 2 3 2 1
-cgroup_fj_function_memory_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function memory yes 7 yes 2 3 2 1
-cgroup_fj_function_memory_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function memory yes 8 yes 2 3 2 1
-cgroup_fj_function_debug,debug_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug yes 1 yes 2 3 2 1
-cgroup_fj_function_debug,debug_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug no 1 yes 2 3 2 1
-cgroup_fj_function_debug,debug_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug yes 2 yes 2 3 2 1
-cgroup_fj_function_debug,debug_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug yes 3 yes 2 3 2 1
-cgroup_fj_function_debug,debug_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug yes 4 yes 2 3 2 1
-cgroup_fj_function_debug,debug_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug yes 5 yes 2 3 2 1
-cgroup_fj_function_debug,debug_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug yes 6 yes 2 3 2 1
-cgroup_fj_function_debug,debug_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug yes 7 yes 2 3 2 1
-cgroup_fj_function_debug,debug_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function debug,debug yes 8 yes 2 3 2 1
-cgroup_fj_function_nonexistent_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function nonexistent yes 1 yes 2 3 2 1
-cgroup_fj_function_freezer_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer yes 1 yes 2 3 2 1
-cgroup_fj_function_freezer_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer no 1 yes 2 3 2 1
-cgroup_fj_function_freezer_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer yes 2 yes 2 3 2 1
-cgroup_fj_function_freezer_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer yes 3 yes 2 3 2 1
-cgroup_fj_function_freezer_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer yes 4 yes 2 3 2 1
-cgroup_fj_function_freezer_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer yes 5 yes 2 3 2 1
-cgroup_fj_function_freezer_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer yes 6 yes 2 3 2 1
-cgroup_fj_function_freezer_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer yes 7 yes 2 3 2 1
-cgroup_fj_function_freezer_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function freezer yes 8 yes 2 3 2 1
-cgroup_fj_function_devices_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function devices yes 1 yes 2 3 2 1
-cgroup_fj_function_devices_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function devices no 1 yes 2 3 2 1
-cgroup_fj_function_devices_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function devices yes 2 yes 2 3 2 1
-cgroup_fj_function_devices_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function devices yes 3 yes 2 3 2 1
-cgroup_fj_function_devices_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function devices yes 4 yes 2 3 2 1
-cgroup_fj_function_devices_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function devices yes 5 yes 2 3 2 1
-cgroup_fj_function_devices_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function devices yes 6 yes 2 3 2 1
-cgroup_fj_function_devices_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function devices yes 7 yes 2 3 2 1
-cgroup_fj_function_devices_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function devices yes 8 yes 2 3 2 1
-cgroup_fj_function_blkio_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio yes 1 yes 2 3 2 1
-cgroup_fj_function_blkio_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio no 1 yes 2 3 2 1
-cgroup_fj_function_blkio_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio yes 2 yes 2 3 2 1
-cgroup_fj_function_blkio_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio yes 3 yes 2 3 2 1
-cgroup_fj_function_blkio_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio yes 4 yes 2 3 2 1
-cgroup_fj_function_blkio_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio yes 5 yes 2 3 2 1
-cgroup_fj_function_blkio_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio yes 6 yes 2 3 2 1
-cgroup_fj_function_blkio_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio yes 7 yes 2 3 2 1
-cgroup_fj_function_blkio_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function blkio yes 8 yes 2 3 2 1
-cgroup_fj_function_hugetlb_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb yes 1 yes 2 3 2 1
-cgroup_fj_function_hugetlb_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb no 1 yes 2 3 2 1
-cgroup_fj_function_hugetlb_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb yes 2 yes 2 3 2 1
-cgroup_fj_function_hugetlb_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb yes 3 yes 2 3 2 1
-cgroup_fj_function_hugetlb_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb yes 4 yes 2 3 2 1
-cgroup_fj_function_hugetlb_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb yes 5 yes 2 3 2 1
-cgroup_fj_function_hugetlb_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb yes 6 yes 2 3 2 1
-cgroup_fj_function_hugetlb_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb yes 7 yes 2 3 2 1
-cgroup_fj_function_hugetlb_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function hugetlb yes 8 yes 2 3 2 1
-cgroup_fj_function_net_cls_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls yes 1 yes 2 3 2 1
-cgroup_fj_function_net_cls_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls no 1 yes 2 3 2 1
-cgroup_fj_function_net_cls_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls yes 2 yes 2 3 2 1
-cgroup_fj_function_net_cls_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls yes 3 yes 2 3 2 1
-cgroup_fj_function_net_cls_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls yes 4 yes 2 3 2 1
-cgroup_fj_function_net_cls_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls yes 5 yes 2 3 2 1
-cgroup_fj_function_net_cls_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls yes 6 yes 2 3 2 1
-cgroup_fj_function_net_cls_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls yes 7 yes 2 3 2 1
-cgroup_fj_function_net_cls_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function net_cls yes 8 yes 2 3 2 1
-cgroup_fj_function_net_prio_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio yes 1 yes 2 3 2 1
-cgroup_fj_function_net_prio_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio no 1 yes 2 3 2 1
-cgroup_fj_function_net_prio_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio yes 2 yes 2 3 2 1
-cgroup_fj_function_net_prio_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio yes 3 yes 2 3 2 1
-cgroup_fj_function_net_prio_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio yes 4 yes 2 3 2 1
-cgroup_fj_function_net_prio_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio yes 5 yes 2 3 2 1
-cgroup_fj_function_net_prio_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio yes 6 yes 2 3 2 1
-cgroup_fj_function_net_prio_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio yes 7 yes 2 3 2 1
-cgroup_fj_function_net_prio_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function net_prio yes 8 yes 2 3 2 1
-cgroup_fj_function_pids_yes_1_yes_2_3_2_1 run_cgroup_test_fj.sh function pids yes 1 yes 2 3 2 1
-cgroup_fj_function_pids_no_1_yes_2_3_2_1 run_cgroup_test_fj.sh function pids no 1 yes 2 3 2 1
-cgroup_fj_function_pids_yes_2_yes_2_3_2_1 run_cgroup_test_fj.sh function pids yes 2 yes 2 3 2 1
-cgroup_fj_function_pids_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function pids yes 3 yes 2 3 2 1
-cgroup_fj_function_pids_yes_4_yes_2_3_2_1 run_cgroup_test_fj.sh function pids yes 4 yes 2 3 2 1
-cgroup_fj_function_pids_yes_5_yes_2_3_2_1 run_cgroup_test_fj.sh function pids yes 5 yes 2 3 2 1
-cgroup_fj_function_pids_yes_6_yes_2_3_2_1 run_cgroup_test_fj.sh function pids yes 6 yes 2 3 2 1
-cgroup_fj_function_pids_yes_7_yes_2_3_2_1 run_cgroup_test_fj.sh function pids yes 7 yes 2 3 2 1
-cgroup_fj_function_pids_yes_8_yes_2_3_2_1 run_cgroup_test_fj.sh function pids yes 8 yes 2 3 2 1
-cgroup_fj_function_debug_yes_1_yes_1_2_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 1 2 1 1
-cgroup_fj_function_debug_yes_1_yes_2_2_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 2 2 1 1
-cgroup_fj_function_debug_yes_1_yes_2_3_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 1 1
-cgroup_fj_function_debug_yes_1_yes_2_5_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 2 5 1 1
-cgroup_fj_function_debug_yes_1_yes_3_1_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 3 1 1 1
-cgroup_fj_function_debug_yes_1_yes_3_2_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 3 2 1 1
-cgroup_fj_function_debug_yes_1_yes_3_4_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 3 4 1 1
-cgroup_fj_function_debug_yes_1_yes_4_3_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 4 3 1 1
-cgroup_fj_function_debug_yes_1_yes_4_5_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 4 5 1 1
-cgroup_fj_function_debug_yes_1_no_1_1_1_1 run_cgroup_test_fj.sh function debug yes 1 no 1 1 1 1
-cgroup_fj_function_debug_yes_1_yes_1_1_1_1 run_cgroup_test_fj.sh function debug yes 1 yes 1 1 1 1
-cgroup_fj_function_debug_yes_1_yes_1_3_2_1 run_cgroup_test_fj.sh function debug yes 1 yes 1 3 2 1
-cgroup_fj_function_debug_yes_1_yes_2_3_2_2 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 2 2
-cgroup_fj_function_debug_yes_1_yes_2_3_2_3 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 2 3
-cgroup_fj_function_debug_yes_1_yes_2_3_2_4 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 2 4
-cgroup_fj_function_debug_yes_1_yes_2_3_2_5 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 2 5
-cgroup_fj_function_debug_yes_1_yes_2_3_2_6 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 2 6
-cgroup_fj_function_debug_yes_1_yes_2_3_2_7 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 2 7
-cgroup_fj_function_debug_yes_1_yes_2_3_3_2 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 3 2
-cgroup_fj_function_debug_yes_1_yes_2_3_4_2 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 4 2
-cgroup_fj_function_debug_yes_1_yes_2_3_5_2 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 5 2
-cgroup_fj_function_debug_yes_1_yes_2_3_6_2 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 6 2
-cgroup_fj_function_debug_yes_1_yes_2_3_7_2 run_cgroup_test_fj.sh function debug yes 1 yes 2 3 7 2
-cgroup_fj_function_debug_yes_2_yes_2_3_2_2 run_cgroup_test_fj.sh function debug yes 2 yes 2 3 2 2
-cgroup_fj_function_debug_yes_3_yes_2_3_1_1 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 1 1
-cgroup_fj_function_debug_yes_3_yes_2_3_1_2 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 1 2
-cgroup_fj_function_debug_yes_3_yes_2_3_1_3 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 1 3
-cgroup_fj_function_debug_yes_3_yes_2_3_2_1 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 2 1
-cgroup_fj_function_debug_yes_3_yes_2_3_2_2 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 2 2
-cgroup_fj_function_debug_yes_3_yes_2_3_2_3 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 2 3
-cgroup_fj_function_debug_yes_3_yes_2_3_2_4 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 2 4
-cgroup_fj_function_debug_yes_3_yes_2_3_2_5 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 2 5
-cgroup_fj_function_debug_yes_3_yes_2_3_2_6 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 2 6
-cgroup_fj_function_debug_yes_3_yes_2_3_2_7 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 2 7
-cgroup_fj_function_debug_yes_3_yes_2_3_3_1 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 3 1
-cgroup_fj_function_debug_yes_3_yes_2_3_3_2 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 3 2
-cgroup_fj_function_debug_yes_3_yes_2_3_3_3 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 3 3
-cgroup_fj_function_debug_yes_3_yes_2_3_4_2 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 4 2
-cgroup_fj_function_debug_yes_3_yes_2_3_5_2 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 5 2
-cgroup_fj_function_debug_yes_3_yes_2_3_6_2 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 6 2
-cgroup_fj_function_debug_yes_3_yes_2_3_7_2 run_cgroup_test_fj.sh function debug yes 3 yes 2 3 7 2
-cgroup_fj_function2_1_debug run_cgroup_test_fj.sh function2 1 debug
-cgroup_fj_function2_1_cpuset run_cgroup_test_fj.sh function2 1 cpuset
-cgroup_fj_function2_2_debug run_cgroup_test_fj.sh function2 2 debug
-cgroup_fj_function2_2_cpuset run_cgroup_test_fj.sh function2 2 cpuset
-cgroup_fj_function2_3_debug run_cgroup_test_fj.sh function2 3 debug
-cgroup_fj_function2_3_cpuset run_cgroup_test_fj.sh function2 3 cpuset
-cgroup_fj_function2_3_ns run_cgroup_test_fj.sh function2 3 ns
-cgroup_fj_function2_3_cpu run_cgroup_test_fj.sh function2 3 cpu
-cgroup_fj_function2_3_cpuacct run_cgroup_test_fj.sh function2 3 cpuacct
-cgroup_fj_function2_3_memory run_cgroup_test_fj.sh function2 3 memory
-cgroup_fj_function2_3_freezer run_cgroup_test_fj.sh function2 3 freezer
-cgroup_fj_function2_3_devices run_cgroup_test_fj.sh function2 3 devices
-cgroup_fj_function2_4_debug run_cgroup_test_fj.sh function2 4 debug
-cgroup_fj_function2_4_cpuset run_cgroup_test_fj.sh function2 4 cpuset
-cgroup_fj_function2_4_ns run_cgroup_test_fj.sh function2 4 ns
-cgroup_fj_function2_4_cpu run_cgroup_test_fj.sh function2 4 cpu
-cgroup_fj_function2_4_cpuacct run_cgroup_test_fj.sh function2 4 cpuacct
-cgroup_fj_function2_4_memory run_cgroup_test_fj.sh function2 4 memory
-cgroup_fj_function2_4_freezer run_cgroup_test_fj.sh function2 4 freezer
-cgroup_fj_function2_4_devices run_cgroup_test_fj.sh function2 4 devices
-cgroup_fj_function2_5_debug run_cgroup_test_fj.sh function2 5 debug
-cgroup_fj_function2_5_cpuset run_cgroup_test_fj.sh function2 5 cpuset
-cgroup_fj_function2_5_ns run_cgroup_test_fj.sh function2 5 ns
-cgroup_fj_function2_5_cpu run_cgroup_test_fj.sh function2 5 cpu
-cgroup_fj_function2_5_cpuacct run_cgroup_test_fj.sh function2 5 cpuacct
-cgroup_fj_function2_5_memory run_cgroup_test_fj.sh function2 5 memory
-cgroup_fj_function2_5_freezer run_cgroup_test_fj.sh function2 5 freezer
-cgroup_fj_function2_5_devices run_cgroup_test_fj.sh function2 5 devices
-cgroup_fj_function2_6_debug run_cgroup_test_fj.sh function2 6 debug
-cgroup_fj_function2_6_cpuset run_cgroup_test_fj.sh function2 6 cpuset
-cgroup_fj_function2_6_ns run_cgroup_test_fj.sh function2 6 ns
-cgroup_fj_function2_6_cpu run_cgroup_test_fj.sh function2 6 cpu
-cgroup_fj_function2_6_cpuacct run_cgroup_test_fj.sh function2 6 cpuacct
-cgroup_fj_function2_6_memory run_cgroup_test_fj.sh function2 6 memory
-cgroup_fj_function2_6_freezer run_cgroup_test_fj.sh function2 6 freezer
-cgroup_fj_function2_6_devices run_cgroup_test_fj.sh function2 6 devices
-cgroup_fj_function2_7_debug run_cgroup_test_fj.sh function2 7 debug
-cgroup_fj_function2_7_cpuset run_cgroup_test_fj.sh function2 7 cpuset
-cgroup_fj_function2_7_ns run_cgroup_test_fj.sh function2 7 ns
-cgroup_fj_function2_7_cpu run_cgroup_test_fj.sh function2 7 cpu
-cgroup_fj_function2_7_cpuacct run_cgroup_test_fj.sh function2 7 cpuacct
-cgroup_fj_function2_7_memory run_cgroup_test_fj.sh function2 7 memory
-cgroup_fj_function2_7_freezer run_cgroup_test_fj.sh function2 7 freezer
-cgroup_fj_function2_7_devices run_cgroup_test_fj.sh function2 7 devices
-cgroup_fj_function2_8_debug run_cgroup_test_fj.sh function2 8 debug
-cgroup_fj_function2_8_cpuset run_cgroup_test_fj.sh function2 8 cpuset
-cgroup_fj_function2_8_ns run_cgroup_test_fj.sh function2 8 ns
-cgroup_fj_function2_8_cpu run_cgroup_test_fj.sh function2 8 cpu
-cgroup_fj_function2_8_cpuacct run_cgroup_test_fj.sh function2 8 cpuacct
-cgroup_fj_function2_8_memory run_cgroup_test_fj.sh function2 8 memory
-cgroup_fj_function2_8_freezer run_cgroup_test_fj.sh function2 8 freezer
-cgroup_fj_function2_8_devices run_cgroup_test_fj.sh function2 8 devices
-cgroup_fj_function2_9_debug run_cgroup_test_fj.sh function2 9 debug
-cgroup_fj_function2_9_cpuset run_cgroup_test_fj.sh function2 9 cpuset
-cgroup_fj_function2_9_ns run_cgroup_test_fj.sh function2 9 ns
-cgroup_fj_function2_9_cpu run_cgroup_test_fj.sh function2 9 cpu
-cgroup_fj_function2_9_cpuacct run_cgroup_test_fj.sh function2 9 cpuacct
-cgroup_fj_function2_9_memory run_cgroup_test_fj.sh function2 9 memory
-cgroup_fj_function2_9_freezer run_cgroup_test_fj.sh function2 9 freezer
-cgroup_fj_function2_9_devices run_cgroup_test_fj.sh function2 9 devices
-cgroup_fj_stress_debug_1_1_2 run_cgroup_test_fj.sh stress debug 1 1 2
-cgroup_fj_stress_debug_1_100_1 run_cgroup_test_fj.sh stress debug 1 100 1
-cgroup_fj_stress_debug_1_100_2 run_cgroup_test_fj.sh stress debug 1 100 2
-cgroup_fj_stress_debug_1_100_3 run_cgroup_test_fj.sh stress debug 1 100 3
-cgroup_fj_stress_debug_100_1_1 run_cgroup_test_fj.sh stress debug 100 1 1
-cgroup_fj_stress_debug_100_1_2 run_cgroup_test_fj.sh stress debug 100 1 2
-cgroup_fj_stress_debug_100_1_3 run_cgroup_test_fj.sh stress debug 100 1 3
-cgroup_fj_stress_debug_100_100_1 run_cgroup_test_fj.sh stress debug 100 100 1
-cgroup_fj_stress_debug_100_100_2 run_cgroup_test_fj.sh stress debug 100 100 2
-cgroup_fj_stress_cpuset_1_1_2 run_cgroup_test_fj.sh stress cpuset 1 1 2
-cgroup_fj_stress_cpuset_1_100_1 run_cgroup_test_fj.sh stress cpuset 1 100 1
-cgroup_fj_stress_cpuset_1_100_2 run_cgroup_test_fj.sh stress cpuset 1 100 2
-cgroup_fj_stress_cpuset_1_100_3 run_cgroup_test_fj.sh stress cpuset 1 100 3
-cgroup_fj_stress_cpuset_100_1_1 run_cgroup_test_fj.sh stress cpuset 100 1 1
-cgroup_fj_stress_cpuset_100_1_2 run_cgroup_test_fj.sh stress cpuset 100 1 2
-cgroup_fj_stress_cpuset_100_1_3 run_cgroup_test_fj.sh stress cpuset 100 1 3
-cgroup_fj_stress_cpuset_100_100_1 run_cgroup_test_fj.sh stress cpuset 100 100 1
-cgroup_fj_stress_cpuset_100_100_2 run_cgroup_test_fj.sh stress cpuset 100 100 2
-cgroup_fj_stress_cpu_1_1_2 run_cgroup_test_fj.sh stress cpu 1 1 2
-cgroup_fj_stress_cpu_100_1_1 run_cgroup_test_fj.sh stress cpu 100 1 1
-cgroup_fj_stress_cpu_100_1_2 run_cgroup_test_fj.sh stress cpu 100 1 2
-cgroup_fj_stress_cpu_100_1_3 run_cgroup_test_fj.sh stress cpu 100 1 3
-cgroup_fj_stress_cpuacct_1_1_2 run_cgroup_test_fj.sh stress cpuacct 1 1 2
-cgroup_fj_stress_cpuacct_1_100_1 run_cgroup_test_fj.sh stress cpuacct 1 100 1
-cgroup_fj_stress_cpuacct_1_100_2 run_cgroup_test_fj.sh stress cpuacct 1 100 2
-cgroup_fj_stress_cpuacct_1_100_3 run_cgroup_test_fj.sh stress cpuacct 1 100 3
-cgroup_fj_stress_cpuacct_100_1_1 run_cgroup_test_fj.sh stress cpuacct 100 1 1
-cgroup_fj_stress_cpuacct_100_1_2 run_cgroup_test_fj.sh stress cpuacct 100 1 2
-cgroup_fj_stress_cpuacct_100_1_3 run_cgroup_test_fj.sh stress cpuacct 100 1 3
-cgroup_fj_stress_cpuacct_100_100_1 run_cgroup_test_fj.sh stress cpuacct 100 100 1
-cgroup_fj_stress_cpuacct_100_100_2 run_cgroup_test_fj.sh stress cpuacct 100 100 2
-cgroup_fj_stress_memory_1_1_2 run_cgroup_test_fj.sh stress memory 1 1 2
-cgroup_fj_stress_memory_1_100_1 run_cgroup_test_fj.sh stress memory 1 100 1
-cgroup_fj_stress_memory_1_100_2 run_cgroup_test_fj.sh stress memory 1 100 2
-cgroup_fj_stress_memory_1_100_3 run_cgroup_test_fj.sh stress memory 1 100 3
-cgroup_fj_stress_memory_100_1_1 run_cgroup_test_fj.sh stress memory 100 1 1
-cgroup_fj_stress_memory_100_1_2 run_cgroup_test_fj.sh stress memory 100 1 2
-cgroup_fj_stress_memory_100_1_3 run_cgroup_test_fj.sh stress memory 100 1 3
-cgroup_fj_stress_memory_100_100_1 run_cgroup_test_fj.sh stress memory 100 100 1
-cgroup_fj_stress_memory_100_100_2 run_cgroup_test_fj.sh stress memory 100 100 2
-cgroup_fj_stress_blkio_1_100_1 run_cgroup_test_fj.sh stress blkio 1 100 1
-cgroup_fj_stress_blkio_1_100_2 run_cgroup_test_fj.sh stress blkio 1 100 2
-cgroup_fj_stress_blkio_1_100_3 run_cgroup_test_fj.sh stress blkio 1 100 3
-cgroup_fj_stress_blkio_100_1_1 run_cgroup_test_fj.sh stress blkio 100 1 1
-cgroup_fj_stress_blkio_100_1_2 run_cgroup_test_fj.sh stress blkio 100 1 2
-cgroup_fj_stress_blkio_100_1_3 run_cgroup_test_fj.sh stress blkio 100 1 3
-cgroup_fj_stress_blkio_100_100_1 run_cgroup_test_fj.sh stress blkio 100 100 1
-cgroup_fj_stress_blkio_100_100_2 run_cgroup_test_fj.sh stress blkio 100 100 2
-cgroup_fj_stress_hugetlb_1_100_1 run_cgroup_test_fj.sh stress hugetlb 1 100 1
-cgroup_fj_stress_hugetlb_1_100_2 run_cgroup_test_fj.sh stress hugetlb 1 100 2
-cgroup_fj_stress_hugetlb_1_100_3 run_cgroup_test_fj.sh stress hugetlb 1 100 3
-cgroup_fj_stress_hugetlb_100_1_1 run_cgroup_test_fj.sh stress hugetlb 100 1 1
-cgroup_fj_stress_hugetlb_100_1_2 run_cgroup_test_fj.sh stress hugetlb 100 1 2
-cgroup_fj_stress_hugetlb_100_1_3 run_cgroup_test_fj.sh stress hugetlb 100 1 3
-cgroup_fj_stress_hugetlb_100_100_1 run_cgroup_test_fj.sh stress hugetlb 100 100 1
-cgroup_fj_stress_hugetlb_100_100_2 run_cgroup_test_fj.sh stress hugetlb 100 100 2
-cgroup_fj_stress_net_cls_1_100_1 run_cgroup_test_fj.sh stress net_cls 1 100 1
-cgroup_fj_stress_net_cls_1_100_2 run_cgroup_test_fj.sh stress net_cls 1 100 2
-cgroup_fj_stress_net_cls_1_100_3 run_cgroup_test_fj.sh stress net_cls 1 100 3
-cgroup_fj_stress_net_cls_100_1_1 run_cgroup_test_fj.sh stress net_cls 100 1 1
-cgroup_fj_stress_net_cls_100_1_2 run_cgroup_test_fj.sh stress net_cls 100 1 2
-cgroup_fj_stress_net_cls_100_1_3 run_cgroup_test_fj.sh stress net_cls 100 1 3
-cgroup_fj_stress_net_cls_100_100_1 run_cgroup_test_fj.sh stress net_cls 100 100 1
-cgroup_fj_stress_net_cls_100_100_2 run_cgroup_test_fj.sh stress net_cls 100 100 2
-cgroup_fj_stress_net_prio_1_100_1 run_cgroup_test_fj.sh stress net_prio 1 100 1
-cgroup_fj_stress_net_prio_1_100_2 run_cgroup_test_fj.sh stress net_prio 1 100 2
-cgroup_fj_stress_net_prio_1_100_3 run_cgroup_test_fj.sh stress net_prio 1 100 3
-cgroup_fj_stress_net_prio_100_1_1 run_cgroup_test_fj.sh stress net_prio 100 1 1
-cgroup_fj_stress_net_prio_100_1_2 run_cgroup_test_fj.sh stress net_prio 100 1 2
-cgroup_fj_stress_net_prio_100_1_3 run_cgroup_test_fj.sh stress net_prio 100 1 3
-cgroup_fj_stress_net_prio_100_100_1 run_cgroup_test_fj.sh stress net_prio 100 100 1
-cgroup_fj_stress_net_prio_100_100_2 run_cgroup_test_fj.sh stress net_prio 100 100 2
-cgroup_fj_stress_pids_1_100_1 run_cgroup_test_fj.sh stress pids 1 100 1
-cgroup_fj_stress_pids_1_100_2 run_cgroup_test_fj.sh stress pids 1 100 2
-cgroup_fj_stress_pids_1_100_3 run_cgroup_test_fj.sh stress pids 1 100 3
-cgroup_fj_stress_pids_100_1_1 run_cgroup_test_fj.sh stress pids 100 1 1
-cgroup_fj_stress_pids_100_1_2 run_cgroup_test_fj.sh stress pids 100 1 2
-cgroup_fj_stress_pids_100_1_3 run_cgroup_test_fj.sh stress pids 100 1 3
-cgroup_fj_stress_pids_100_100_1 run_cgroup_test_fj.sh stress pids 100 100 1
-cgroup_fj_stress_pids_100_100_2 run_cgroup_test_fj.sh stress pids 100 100 2
-cgroup_fj_stress_freezer_1_100_1 run_cgroup_test_fj.sh stress freezer 1 100 1
-cgroup_fj_stress_freezer_1_100_2 run_cgroup_test_fj.sh stress freezer 1 100 2
-cgroup_fj_stress_freezer_1_100_3 run_cgroup_test_fj.sh stress freezer 1 100 3
-cgroup_fj_stress_freezer_100_1_1 run_cgroup_test_fj.sh stress freezer 100 1 1
-cgroup_fj_stress_freezer_100_1_2 run_cgroup_test_fj.sh stress freezer 100 1 2
-cgroup_fj_stress_freezer_100_1_3 run_cgroup_test_fj.sh stress freezer 100 1 3
-cgroup_fj_stress_freezer_100_100_1 run_cgroup_test_fj.sh stress freezer 100 100 1
-cgroup_fj_stress_freezer_100_100_2 run_cgroup_test_fj.sh stress freezer 100 100 2
-cgroup_fj_stress_devices_1_100_1 run_cgroup_test_fj.sh stress devices 1 100 1
-cgroup_fj_stress_devices_1_100_2 run_cgroup_test_fj.sh stress devices 1 100 2
-cgroup_fj_stress_devices_1_100_3 run_cgroup_test_fj.sh stress devices 1 100 3
-cgroup_fj_stress_devices_100_1_1 run_cgroup_test_fj.sh stress devices 100 1 1
-cgroup_fj_stress_devices_100_1_2 run_cgroup_test_fj.sh stress devices 100 1 2
-cgroup_fj_stress_devices_100_1_3 run_cgroup_test_fj.sh stress devices 100 1 3
-cgroup_fj_stress_devices_100_100_1 run_cgroup_test_fj.sh stress devices 100 100 1
-cgroup_fj_stress_devices_100_100_2 run_cgroup_test_fj.sh stress devices 100 100 2
+cgroup_fj_function_debug cgroup_fj_function.sh debug
+cgroup_fj_function_cpuset cgroup_fj_function.sh cpuset
+cgroup_fj_function_cpu cgroup_fj_function.sh cpu
+cgroup_fj_function_cpuacct cgroup_fj_function.sh cpuacct
+cgroup_fj_function_memory cgroup_fj_function.sh memory
+cgroup_fj_function_freezer cgroup_fj_function.sh freezer
+cgroup_fj_function_devices cgroup_fj_function.sh devices
+cgroup_fj_function_blkio cgroup_fj_function.sh blkio
+cgroup_fj_function_net_cls cgroup_fj_function.sh net_cls
+cgroup_fj_function_perf_event cgroup_fj_function.sh perf_event
+cgroup_fj_function_net_prio cgroup_fj_function.sh net_prio
+cgroup_fj_function_hugetlb cgroup_fj_function.sh hugetlb
+
+# Stress test for debug cgroup
+cgroup_fj_stress_debug_2_2_none cgroup_fj_stress.sh debug 2 2 none
+cgroup_fj_stress_debug_3_3_none cgroup_fj_stress.sh debug 3 3 none
+cgroup_fj_stress_debug_4_4_none cgroup_fj_stress.sh debug 4 4 none
+cgroup_fj_stress_debug_2_9_none cgroup_fj_stress.sh debug 2 9 none
+cgroup_fj_stress_debug_10_3_none cgroup_fj_stress.sh debug 10 3 none
+cgroup_fj_stress_debug_1_200_none cgroup_fj_stress.sh debug 1 200 none
+cgroup_fj_stress_debug_200_1_none cgroup_fj_stress.sh debug 200 1 none
+
+cgroup_fj_stress_debug_2_2_one cgroup_fj_stress.sh debug 2 2 one
+cgroup_fj_stress_debug_3_3_one cgroup_fj_stress.sh debug 3 3 one
+cgroup_fj_stress_debug_4_4_one cgroup_fj_stress.sh debug 4 4 one
+cgroup_fj_stress_debug_2_9_one cgroup_fj_stress.sh debug 2 9 one
+cgroup_fj_stress_debug_10_3_one cgroup_fj_stress.sh debug 10 3 one
+cgroup_fj_stress_debug_1_200_one cgroup_fj_stress.sh debug 1 200 one
+cgroup_fj_stress_debug_200_1_one cgroup_fj_stress.sh debug 200 1 one
+
+cgroup_fj_stress_debug_2_2_each cgroup_fj_stress.sh debug 2 2 each
+cgroup_fj_stress_debug_3_3_each cgroup_fj_stress.sh debug 3 3 each
+cgroup_fj_stress_debug_4_4_each cgroup_fj_stress.sh debug 4 4 each
+cgroup_fj_stress_debug_2_9_each cgroup_fj_stress.sh debug 2 9 each
+cgroup_fj_stress_debug_10_3_each cgroup_fj_stress.sh debug 10 3 each
+cgroup_fj_stress_debug_1_200_each cgroup_fj_stress.sh debug 1 200 each
+cgroup_fj_stress_debug_200_1_each cgroup_fj_stress.sh debug 200 1 each
+
+# Stress test for cpuset cgroup
+cgroup_fj_stress_cpuset_2_2_none cgroup_fj_stress.sh cpuset 2 2 none
+cgroup_fj_stress_cpuset_3_3_none cgroup_fj_stress.sh cpuset 3 3 none
+cgroup_fj_stress_cpuset_4_4_none cgroup_fj_stress.sh cpuset 4 4 none
+cgroup_fj_stress_cpuset_2_9_none cgroup_fj_stress.sh cpuset 2 9 none
+cgroup_fj_stress_cpuset_10_3_none cgroup_fj_stress.sh cpuset 10 3 none
+cgroup_fj_stress_cpuset_1_200_none cgroup_fj_stress.sh cpuset 1 200 none
+cgroup_fj_stress_cpuset_200_1_none cgroup_fj_stress.sh cpuset 200 1 none
+
+cgroup_fj_stress_cpuset_2_2_one cgroup_fj_stress.sh cpuset 2 2 one
+cgroup_fj_stress_cpuset_3_3_one cgroup_fj_stress.sh cpuset 3 3 one
+cgroup_fj_stress_cpuset_4_4_one cgroup_fj_stress.sh cpuset 4 4 one
+cgroup_fj_stress_cpuset_2_9_one cgroup_fj_stress.sh cpuset 2 9 one
+cgroup_fj_stress_cpuset_10_3_one cgroup_fj_stress.sh cpuset 10 3 one
+cgroup_fj_stress_cpuset_1_200_one cgroup_fj_stress.sh cpuset 1 200 one
+cgroup_fj_stress_cpuset_200_1_one cgroup_fj_stress.sh cpuset 200 1 one
+
+cgroup_fj_stress_cpuset_2_2_each cgroup_fj_stress.sh cpuset 2 2 each
+cgroup_fj_stress_cpuset_3_3_each cgroup_fj_stress.sh cpuset 3 3 each
+cgroup_fj_stress_cpuset_4_4_each cgroup_fj_stress.sh cpuset 4 4 each
+cgroup_fj_stress_cpuset_2_9_each cgroup_fj_stress.sh cpuset 2 9 each
+cgroup_fj_stress_cpuset_10_3_each cgroup_fj_stress.sh cpuset 10 3 each
+cgroup_fj_stress_cpuset_1_200_each cgroup_fj_stress.sh cpuset 1 200 each
+cgroup_fj_stress_cpuset_200_1_each cgroup_fj_stress.sh cpuset 200 1 each
+
+# Stress test for cpu cgroup
+cgroup_fj_stress_cpu_2_2_none cgroup_fj_stress.sh cpu 2 2 none
+cgroup_fj_stress_cpu_3_3_none cgroup_fj_stress.sh cpu 3 3 none
+cgroup_fj_stress_cpu_4_4_none cgroup_fj_stress.sh cpu 4 4 none
+cgroup_fj_stress_cpu_2_9_none cgroup_fj_stress.sh cpu 2 9 none
+cgroup_fj_stress_cpu_10_3_none cgroup_fj_stress.sh cpu 10 3 none
+cgroup_fj_stress_cpu_1_200_none cgroup_fj_stress.sh cpu 1 200 none
+cgroup_fj_stress_cpu_200_1_none cgroup_fj_stress.sh cpu 200 1 none
+
+cgroup_fj_stress_cpu_2_2_one cgroup_fj_stress.sh cpu 2 2 one
+cgroup_fj_stress_cpu_3_3_one cgroup_fj_stress.sh cpu 3 3 one
+cgroup_fj_stress_cpu_4_4_one cgroup_fj_stress.sh cpu 4 4 one
+cgroup_fj_stress_cpu_2_9_one cgroup_fj_stress.sh cpu 2 9 one
+cgroup_fj_stress_cpu_10_3_one cgroup_fj_stress.sh cpu 10 3 one
+cgroup_fj_stress_cpu_1_200_one cgroup_fj_stress.sh cpu 1 200 one
+cgroup_fj_stress_cpu_200_1_one cgroup_fj_stress.sh cpu 200 1 one
+
+cgroup_fj_stress_cpu_2_2_each cgroup_fj_stress.sh cpu 2 2 each
+cgroup_fj_stress_cpu_3_3_each cgroup_fj_stress.sh cpu 3 3 each
+cgroup_fj_stress_cpu_4_4_each cgroup_fj_stress.sh cpu 4 4 each
+cgroup_fj_stress_cpu_2_9_each cgroup_fj_stress.sh cpu 2 9 each
+cgroup_fj_stress_cpu_10_3_each cgroup_fj_stress.sh cpu 10 3 each
+cgroup_fj_stress_cpu_1_200_each cgroup_fj_stress.sh cpu 1 200 each
+cgroup_fj_stress_cpu_200_1_each cgroup_fj_stress.sh cpu 200 1 each
+
+# Stress test for cpuacct cgroup
+cgroup_fj_stress_cpuacct_2_2_none cgroup_fj_stress.sh cpuacct 2 2 none
+cgroup_fj_stress_cpuacct_3_3_none cgroup_fj_stress.sh cpuacct 3 3 none
+cgroup_fj_stress_cpuacct_4_4_none cgroup_fj_stress.sh cpuacct 4 4 none
+cgroup_fj_stress_cpuacct_2_9_none cgroup_fj_stress.sh cpuacct 2 9 none
+cgroup_fj_stress_cpuacct_10_3_none cgroup_fj_stress.sh cpuacct 10 3 none
+cgroup_fj_stress_cpuacct_1_200_none cgroup_fj_stress.sh cpuacct 1 200 none
+cgroup_fj_stress_cpuacct_200_1_none cgroup_fj_stress.sh cpuacct 200 1 none
+
+cgroup_fj_stress_cpuacct_2_2_one cgroup_fj_stress.sh cpuacct 2 2 one
+cgroup_fj_stress_cpuacct_3_3_one cgroup_fj_stress.sh cpuacct 3 3 one
+cgroup_fj_stress_cpuacct_4_4_one cgroup_fj_stress.sh cpuacct 4 4 one
+cgroup_fj_stress_cpuacct_2_9_one cgroup_fj_stress.sh cpuacct 2 9 one
+cgroup_fj_stress_cpuacct_10_3_one cgroup_fj_stress.sh cpuacct 10 3 one
+cgroup_fj_stress_cpuacct_1_200_one cgroup_fj_stress.sh cpuacct 1 200 one
+cgroup_fj_stress_cpuacct_200_1_one cgroup_fj_stress.sh cpuacct 200 1 one
+
+cgroup_fj_stress_cpuacct_2_2_each cgroup_fj_stress.sh cpuacct 2 2 each
+cgroup_fj_stress_cpuacct_3_3_each cgroup_fj_stress.sh cpuacct 3 3 each
+cgroup_fj_stress_cpuacct_4_4_each cgroup_fj_stress.sh cpuacct 4 4 each
+cgroup_fj_stress_cpuacct_2_9_each cgroup_fj_stress.sh cpuacct 2 9 each
+cgroup_fj_stress_cpuacct_10_3_each cgroup_fj_stress.sh cpuacct 10 3 each
+cgroup_fj_stress_cpuacct_1_200_each cgroup_fj_stress.sh cpuacct 1 200 each
+cgroup_fj_stress_cpuacct_200_1_each cgroup_fj_stress.sh cpuacct 200 1 each
+
+# Stress test for memory cgroup
+cgroup_fj_stress_memory_2_2_none cgroup_fj_stress.sh memory 2 2 none
+cgroup_fj_stress_memory_3_3_none cgroup_fj_stress.sh memory 3 3 none
+cgroup_fj_stress_memory_4_4_none cgroup_fj_stress.sh memory 4 4 none
+cgroup_fj_stress_memory_2_9_none cgroup_fj_stress.sh memory 2 9 none
+cgroup_fj_stress_memory_10_3_none cgroup_fj_stress.sh memory 10 3 none
+cgroup_fj_stress_memory_1_200_none cgroup_fj_stress.sh memory 1 200 none
+cgroup_fj_stress_memory_200_1_none cgroup_fj_stress.sh memory 200 1 none
+
+cgroup_fj_stress_memory_2_2_one cgroup_fj_stress.sh memory 2 2 one
+cgroup_fj_stress_memory_3_3_one cgroup_fj_stress.sh memory 3 3 one
+cgroup_fj_stress_memory_4_4_one cgroup_fj_stress.sh memory 4 4 one
+cgroup_fj_stress_memory_2_9_one cgroup_fj_stress.sh memory 2 9 one
+cgroup_fj_stress_memory_10_3_one cgroup_fj_stress.sh memory 10 3 one
+cgroup_fj_stress_memory_1_200_one cgroup_fj_stress.sh memory 1 200 one
+cgroup_fj_stress_memory_200_1_one cgroup_fj_stress.sh memory 200 1 one
+
+cgroup_fj_stress_memory_2_2_each cgroup_fj_stress.sh memory 2 2 each
+cgroup_fj_stress_memory_3_3_each cgroup_fj_stress.sh memory 3 3 each
+cgroup_fj_stress_memory_4_4_each cgroup_fj_stress.sh memory 4 4 each
+cgroup_fj_stress_memory_2_9_each cgroup_fj_stress.sh memory 2 9 each
+cgroup_fj_stress_memory_10_3_each cgroup_fj_stress.sh memory 10 3 each
+cgroup_fj_stress_memory_1_200_each cgroup_fj_stress.sh memory 1 200 each
+cgroup_fj_stress_memory_200_1_each cgroup_fj_stress.sh memory 200 1 each
+
+# Stress test for freezer cgroup
+cgroup_fj_stress_freezer_2_2_none cgroup_fj_stress.sh freezer 2 2 none
+cgroup_fj_stress_freezer_3_3_none cgroup_fj_stress.sh freezer 3 3 none
+cgroup_fj_stress_freezer_4_4_none cgroup_fj_stress.sh freezer 4 4 none
+cgroup_fj_stress_freezer_2_9_none cgroup_fj_stress.sh freezer 2 9 none
+cgroup_fj_stress_freezer_10_3_none cgroup_fj_stress.sh freezer 10 3 none
+cgroup_fj_stress_freezer_1_200_none cgroup_fj_stress.sh freezer 1 200 none
+cgroup_fj_stress_freezer_200_1_none cgroup_fj_stress.sh freezer 200 1 none
+
+cgroup_fj_stress_freezer_2_2_one cgroup_fj_stress.sh freezer 2 2 one
+cgroup_fj_stress_freezer_3_3_one cgroup_fj_stress.sh freezer 3 3 one
+cgroup_fj_stress_freezer_4_4_one cgroup_fj_stress.sh freezer 4 4 one
+cgroup_fj_stress_freezer_2_9_one cgroup_fj_stress.sh freezer 2 9 one
+cgroup_fj_stress_freezer_10_3_one cgroup_fj_stress.sh freezer 10 3 one
+cgroup_fj_stress_freezer_1_200_one cgroup_fj_stress.sh freezer 1 200 one
+cgroup_fj_stress_freezer_200_1_one cgroup_fj_stress.sh freezer 200 1 one
+
+cgroup_fj_stress_freezer_2_2_each cgroup_fj_stress.sh freezer 2 2 each
+cgroup_fj_stress_freezer_3_3_each cgroup_fj_stress.sh freezer 3 3 each
+cgroup_fj_stress_freezer_4_4_each cgroup_fj_stress.sh freezer 4 4 each
+cgroup_fj_stress_freezer_2_9_each cgroup_fj_stress.sh freezer 2 9 each
+cgroup_fj_stress_freezer_10_3_each cgroup_fj_stress.sh freezer 10 3 each
+cgroup_fj_stress_freezer_1_200_each cgroup_fj_stress.sh freezer 1 200 each
+cgroup_fj_stress_freezer_200_1_each cgroup_fj_stress.sh freezer 200 1 each
+
+# Stress test for devices cgroup
+cgroup_fj_stress_devices_2_2_none cgroup_fj_stress.sh devices 2 2 none
+cgroup_fj_stress_devices_3_3_none cgroup_fj_stress.sh devices 3 3 none
+cgroup_fj_stress_devices_4_4_none cgroup_fj_stress.sh devices 4 4 none
+cgroup_fj_stress_devices_2_9_none cgroup_fj_stress.sh devices 2 9 none
+cgroup_fj_stress_devices_10_3_none cgroup_fj_stress.sh devices 10 3 none
+cgroup_fj_stress_devices_1_200_none cgroup_fj_stress.sh devices 1 200 none
+cgroup_fj_stress_devices_200_1_none cgroup_fj_stress.sh devices 200 1 none
+
+cgroup_fj_stress_devices_2_2_one cgroup_fj_stress.sh devices 2 2 one
+cgroup_fj_stress_devices_3_3_one cgroup_fj_stress.sh devices 3 3 one
+cgroup_fj_stress_devices_4_4_one cgroup_fj_stress.sh devices 4 4 one
+cgroup_fj_stress_devices_2_9_one cgroup_fj_stress.sh devices 2 9 one
+cgroup_fj_stress_devices_10_3_one cgroup_fj_stress.sh devices 10 3 one
+cgroup_fj_stress_devices_1_200_one cgroup_fj_stress.sh devices 1 200 one
+cgroup_fj_stress_devices_200_1_one cgroup_fj_stress.sh devices 200 1 one
+
+cgroup_fj_stress_devices_2_2_each cgroup_fj_stress.sh devices 2 2 each
+cgroup_fj_stress_devices_3_3_each cgroup_fj_stress.sh devices 3 3 each
+cgroup_fj_stress_devices_4_4_each cgroup_fj_stress.sh devices 4 4 each
+cgroup_fj_stress_devices_2_9_each cgroup_fj_stress.sh devices 2 9 each
+cgroup_fj_stress_devices_10_3_each cgroup_fj_stress.sh devices 10 3 each
+cgroup_fj_stress_devices_1_200_each cgroup_fj_stress.sh devices 1 200 each
+cgroup_fj_stress_devices_200_1_each cgroup_fj_stress.sh devices 200 1 each
+
+# Stress test for blkio cgroup
+cgroup_fj_stress_blkio_2_2_none cgroup_fj_stress.sh blkio 2 2 none
+cgroup_fj_stress_blkio_3_3_none cgroup_fj_stress.sh blkio 3 3 none
+cgroup_fj_stress_blkio_4_4_none cgroup_fj_stress.sh blkio 4 4 none
+cgroup_fj_stress_blkio_2_9_none cgroup_fj_stress.sh blkio 2 9 none
+cgroup_fj_stress_blkio_10_3_none cgroup_fj_stress.sh blkio 10 3 none
+cgroup_fj_stress_blkio_1_200_none cgroup_fj_stress.sh blkio 1 200 none
+cgroup_fj_stress_blkio_200_1_none cgroup_fj_stress.sh blkio 200 1 none
+
+cgroup_fj_stress_blkio_2_2_one cgroup_fj_stress.sh blkio 2 2 one
+cgroup_fj_stress_blkio_3_3_one cgroup_fj_stress.sh blkio 3 3 one
+cgroup_fj_stress_blkio_4_4_one cgroup_fj_stress.sh blkio 4 4 one
+cgroup_fj_stress_blkio_2_9_one cgroup_fj_stress.sh blkio 2 9 one
+cgroup_fj_stress_blkio_10_3_one cgroup_fj_stress.sh blkio 10 3 one
+cgroup_fj_stress_blkio_1_200_one cgroup_fj_stress.sh blkio 1 200 one
+cgroup_fj_stress_blkio_200_1_one cgroup_fj_stress.sh blkio 200 1 one
+
+cgroup_fj_stress_blkio_2_2_each cgroup_fj_stress.sh blkio 2 2 each
+cgroup_fj_stress_blkio_3_3_each cgroup_fj_stress.sh blkio 3 3 each
+cgroup_fj_stress_blkio_4_4_each cgroup_fj_stress.sh blkio 4 4 each
+cgroup_fj_stress_blkio_2_9_each cgroup_fj_stress.sh blkio 2 9 each
+cgroup_fj_stress_blkio_10_3_each cgroup_fj_stress.sh blkio 10 3 each
+cgroup_fj_stress_blkio_1_200_each cgroup_fj_stress.sh blkio 1 200 each
+cgroup_fj_stress_blkio_200_1_each cgroup_fj_stress.sh blkio 200 1 each
+
+# Stress test for net_cls cgroup
+cgroup_fj_stress_net_cls_2_2_none cgroup_fj_stress.sh net_cls 2 2 none
+cgroup_fj_stress_net_cls_3_3_none cgroup_fj_stress.sh net_cls 3 3 none
+cgroup_fj_stress_net_cls_4_4_none cgroup_fj_stress.sh net_cls 4 4 none
+cgroup_fj_stress_net_cls_2_9_none cgroup_fj_stress.sh net_cls 2 9 none
+cgroup_fj_stress_net_cls_10_3_none cgroup_fj_stress.sh net_cls 10 3 none
+cgroup_fj_stress_net_cls_1_200_none cgroup_fj_stress.sh net_cls 1 200 none
+cgroup_fj_stress_net_cls_200_1_none cgroup_fj_stress.sh net_cls 200 1 none
+
+cgroup_fj_stress_net_cls_2_2_one cgroup_fj_stress.sh net_cls 2 2 one
+cgroup_fj_stress_net_cls_3_3_one cgroup_fj_stress.sh net_cls 3 3 one
+cgroup_fj_stress_net_cls_4_4_one cgroup_fj_stress.sh net_cls 4 4 one
+cgroup_fj_stress_net_cls_2_9_one cgroup_fj_stress.sh net_cls 2 9 one
+cgroup_fj_stress_net_cls_10_3_one cgroup_fj_stress.sh net_cls 10 3 one
+cgroup_fj_stress_net_cls_1_200_one cgroup_fj_stress.sh net_cls 1 200 one
+cgroup_fj_stress_net_cls_200_1_one cgroup_fj_stress.sh net_cls 200 1 one
+
+cgroup_fj_stress_net_cls_2_2_each cgroup_fj_stress.sh net_cls 2 2 each
+cgroup_fj_stress_net_cls_3_3_each cgroup_fj_stress.sh net_cls 3 3 each
+cgroup_fj_stress_net_cls_4_4_each cgroup_fj_stress.sh net_cls 4 4 each
+cgroup_fj_stress_net_cls_2_9_each cgroup_fj_stress.sh net_cls 2 9 each
+cgroup_fj_stress_net_cls_10_3_each cgroup_fj_stress.sh net_cls 10 3 each
+cgroup_fj_stress_net_cls_1_200_each cgroup_fj_stress.sh net_cls 1 200 each
+cgroup_fj_stress_net_cls_200_1_each cgroup_fj_stress.sh net_cls 200 1 each
+
+# Stress test for perf_event cgroup
+cgroup_fj_stress_perf_event_2_2_none cgroup_fj_stress.sh perf_event 2 2 none
+cgroup_fj_stress_perf_event_3_3_none cgroup_fj_stress.sh perf_event 3 3 none
+cgroup_fj_stress_perf_event_4_4_none cgroup_fj_stress.sh perf_event 4 4 none
+cgroup_fj_stress_perf_event_2_9_none cgroup_fj_stress.sh perf_event 2 9 none
+cgroup_fj_stress_perf_event_10_3_none cgroup_fj_stress.sh perf_event 10 3 none
+cgroup_fj_stress_perf_event_1_200_none cgroup_fj_stress.sh perf_event 1 200 none
+cgroup_fj_stress_perf_event_200_1_none cgroup_fj_stress.sh perf_event 200 1 none
+
+cgroup_fj_stress_perf_event_2_2_one cgroup_fj_stress.sh perf_event 2 2 one
+cgroup_fj_stress_perf_event_3_3_one cgroup_fj_stress.sh perf_event 3 3 one
+cgroup_fj_stress_perf_event_4_4_one cgroup_fj_stress.sh perf_event 4 4 one
+cgroup_fj_stress_perf_event_2_9_one cgroup_fj_stress.sh perf_event 2 9 one
+cgroup_fj_stress_perf_event_10_3_one cgroup_fj_stress.sh perf_event 10 3 one
+cgroup_fj_stress_perf_event_1_200_one cgroup_fj_stress.sh perf_event 1 200 one
+cgroup_fj_stress_perf_event_200_1_one cgroup_fj_stress.sh perf_event 200 1 one
+
+cgroup_fj_stress_perf_event_2_2_each cgroup_fj_stress.sh perf_event 2 2 each
+cgroup_fj_stress_perf_event_3_3_each cgroup_fj_stress.sh perf_event 3 3 each
+cgroup_fj_stress_perf_event_4_4_each cgroup_fj_stress.sh perf_event 4 4 each
+cgroup_fj_stress_perf_event_2_9_each cgroup_fj_stress.sh perf_event 2 9 each
+cgroup_fj_stress_perf_event_10_3_each cgroup_fj_stress.sh perf_event 10 3 each
+cgroup_fj_stress_perf_event_1_200_each cgroup_fj_stress.sh perf_event 1 200 each
+cgroup_fj_stress_perf_event_200_1_each cgroup_fj_stress.sh perf_event 200 1 each
+
+# Stress test for net_prio cgroup
+cgroup_fj_stress_net_prio_2_2_none cgroup_fj_stress.sh net_prio 2 2 none
+cgroup_fj_stress_net_prio_3_3_none cgroup_fj_stress.sh net_prio 3 3 none
+cgroup_fj_stress_net_prio_4_4_none cgroup_fj_stress.sh net_prio 4 4 none
+cgroup_fj_stress_net_prio_2_9_none cgroup_fj_stress.sh net_prio 2 9 none
+cgroup_fj_stress_net_prio_10_3_none cgroup_fj_stress.sh net_prio 10 3 none
+cgroup_fj_stress_net_prio_1_200_none cgroup_fj_stress.sh net_prio 1 200 none
+cgroup_fj_stress_net_prio_200_1_none cgroup_fj_stress.sh net_prio 200 1 none
+
+cgroup_fj_stress_net_prio_2_2_one cgroup_fj_stress.sh net_prio 2 2 one
+cgroup_fj_stress_net_prio_3_3_one cgroup_fj_stress.sh net_prio 3 3 one
+cgroup_fj_stress_net_prio_4_4_one cgroup_fj_stress.sh net_prio 4 4 one
+cgroup_fj_stress_net_prio_2_9_one cgroup_fj_stress.sh net_prio 2 9 one
+cgroup_fj_stress_net_prio_10_3_one cgroup_fj_stress.sh net_prio 10 3 one
+cgroup_fj_stress_net_prio_1_200_one cgroup_fj_stress.sh net_prio 1 200 one
+cgroup_fj_stress_net_prio_200_1_one cgroup_fj_stress.sh net_prio 200 1 one
+
+cgroup_fj_stress_net_prio_2_2_each cgroup_fj_stress.sh net_prio 2 2 each
+cgroup_fj_stress_net_prio_3_3_each cgroup_fj_stress.sh net_prio 3 3 each
+cgroup_fj_stress_net_prio_4_4_each cgroup_fj_stress.sh net_prio 4 4 each
+cgroup_fj_stress_net_prio_2_9_each cgroup_fj_stress.sh net_prio 2 9 each
+cgroup_fj_stress_net_prio_10_3_each cgroup_fj_stress.sh net_prio 10 3 each
+cgroup_fj_stress_net_prio_1_200_each cgroup_fj_stress.sh net_prio 1 200 each
+cgroup_fj_stress_net_prio_200_1_each cgroup_fj_stress.sh net_prio 200 1 each
+
+# Stress test for hugetlb cgroup
+cgroup_fj_stress_hugetlb_2_2_none cgroup_fj_stress.sh hugetlb 2 2 none
+cgroup_fj_stress_hugetlb_3_3_none cgroup_fj_stress.sh hugetlb 3 3 none
+cgroup_fj_stress_hugetlb_4_4_none cgroup_fj_stress.sh hugetlb 4 4 none
+cgroup_fj_stress_hugetlb_2_9_none cgroup_fj_stress.sh hugetlb 2 9 none
+cgroup_fj_stress_hugetlb_10_3_none cgroup_fj_stress.sh hugetlb 10 3 none
+cgroup_fj_stress_hugetlb_1_200_none cgroup_fj_stress.sh hugetlb 1 200 none
+cgroup_fj_stress_hugetlb_200_1_none cgroup_fj_stress.sh hugetlb 200 1 none
+
+cgroup_fj_stress_hugetlb_2_2_one cgroup_fj_stress.sh hugetlb 2 2 one
+cgroup_fj_stress_hugetlb_3_3_one cgroup_fj_stress.sh hugetlb 3 3 one
+cgroup_fj_stress_hugetlb_4_4_one cgroup_fj_stress.sh hugetlb 4 4 one
+cgroup_fj_stress_hugetlb_2_9_one cgroup_fj_stress.sh hugetlb 2 9 one
+cgroup_fj_stress_hugetlb_10_3_one cgroup_fj_stress.sh hugetlb 10 3 one
+cgroup_fj_stress_hugetlb_1_200_one cgroup_fj_stress.sh hugetlb 1 200 one
+cgroup_fj_stress_hugetlb_200_1_one cgroup_fj_stress.sh hugetlb 200 1 one
+
+cgroup_fj_stress_hugetlb_2_2_each cgroup_fj_stress.sh hugetlb 2 2 each
+cgroup_fj_stress_hugetlb_3_3_each cgroup_fj_stress.sh hugetlb 3 3 each
+cgroup_fj_stress_hugetlb_4_4_each cgroup_fj_stress.sh hugetlb 4 4 each
+cgroup_fj_stress_hugetlb_2_9_each cgroup_fj_stress.sh hugetlb 2 9 each
+cgroup_fj_stress_hugetlb_10_3_each cgroup_fj_stress.sh hugetlb 10 3 each
+cgroup_fj_stress_hugetlb_1_200_each cgroup_fj_stress.sh hugetlb 1 200 each
+cgroup_fj_stress_hugetlb_200_1_each cgroup_fj_stress.sh hugetlb 200 1 each
controllers test_controllers.sh
diff --git a/testcases/kernel/controllers/cgroup_fj/README b/testcases/kernel/controllers/cgroup_fj/README
deleted file mode 100644
index 4d4dd6861..000000000
--- a/testcases/kernel/controllers/cgroup_fj/README
+++ /dev/null
@@ -1,56 +0,0 @@
-
-TEST SUITE:
-
-The directory cgroup_fj contains the tests related to the cgroups.
-
-There are total 194 testcases that have been added. These testcases
-contain the basis operation test and stress test of cgroups.
-
-NOTE: the test can be run by root only.
-
-TESTS AIM:
-
-The aim of the tests is to test the functionality of cgroups.
-
-FILES DESCRIPTION:
-
-run_cgroup_test_fj.sh
---------------------
-This script runs all the 194 testcases.
-
-cgroup_fj_proc.c
---------------------
-The program creates child process till catched a signal SIGUSR1.
-
-cgroup_fj_utility.sh
---------------------
-Contains common functions for function test and stress test.
-
-cgroup_fj_release_agent
---------------------
-Used for the cgroup option of release_agent.
-
-cgroup_fj_function.sh
---------------------
-This script runs a function test.
-
-cgroup_fj_function2.sh
---------------------
-This script runs a function test which not be covered by cgroup_fj_function.sh.
-
-cgroup_fj_stress.sh
---------------------
-This script runs a stress test.
-
-cgroup_fj_testcases.sh
---------------------
-Prestored test cases for function test and stress test.
-
-Makefile
---------------------
-The usual makefile for this directory
-
-README
-------
-The one you have gone through.
-
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
new file mode 100755
index 000000000..2b990eb7a
--- /dev/null
+++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
@@ -0,0 +1,125 @@
+#!/bin/sh
+
+################################################################################
+## ##
+## Copyright (c) 2009 FUJITSU LIMITED ##
+## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
+## Copyright (c) 2015 Cedric Hnyda <chnyda@suse.com> ##
+## Copyright (c) 2015-2016 Cyril Hrubis <chrubis@suse.cz> ##
+## ##
+## This program is free software; you can redistribute it and#or modify ##
+## it under the terms of the GNU General Public License as published by ##
+## the Free Software Foundation; either version 2 of the License, or ##
+## (at your option) any later version. ##
+## ##
+## This program is distributed in the hope that it will be useful, but ##
+## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
+## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
+## for more details. ##
+## ##
+## You should have received a copy of the GNU General Public License ##
+## along with this program; if not, write to the Free Software Foundation, ##
+## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
+## ##
+################################################################################
+
+for arg; do
+ TCID="${TCID}_$arg"
+done
+
+. test.sh
+
+exist_subsystem()
+{
+ local subsystem="$1"
+ local exist=`grep -w $subsystem /proc/cgroups | cut -f1`
+
+ if [ "$exist" = "" ]; then
+ tst_brkm TCONF "Subsystem $subsystem not supported"
+ fi
+}
+
+attach_and_check()
+{
+ local pid="$1"
+ local path="$2"
+ local task
+ shift
+
+ tst_resm TINFO "Attaching task $pid to $path"
+
+ ROD echo "$pid" > "$path/tasks"
+
+ for task in $(cat "$path/tasks"); do
+ if [ "$task" -ne "$pid" ]; then
+ tst_resm TINFO "Unexpected pid $task in $path/tasks, expected $pid"
+ return 1
+ fi
+ done
+
+ return 0
+}
+
+create_subgroup()
+{
+ path="$1"
+
+ ROD mkdir "$path"
+
+ # cpuset.cpus and cpuset.mems must be initialized with suitable value
+ # before any pids are attached
+ if [ "$subsystem" == "cpuset" ]; then
+ ROD cat "$mount_point/cpuset.cpus" > "$path/cpuset.cpus"
+ ROD cat "$mount_point/cpuset.mems" > "$path/cpuset.mems"
+ fi
+}
+
+
+setup()
+{
+ tst_require_root
+
+ if [ ! -f /proc/cgroups ]; then
+ tst_brkm TCONF "Kernel does not support for control groups"
+ fi
+
+ exist_subsystem "$subsystem"
+
+ tst_tmpdir
+ TST_CLEANUP=cleanup
+
+ mount_point=`grep -w $subsystem /proc/mounts | cut -f 2 | cut -d " " -f2`
+
+ if [ "$mount_point" == "" ]; then
+ try_umount=1
+ mount_point="/dev/cgroup"
+ tst_resm TINFO "Subsystem $subsystem is not mounted, mounting it at $mount_point"
+ ROD mkdir $mount_point
+ ROD mount -t cgroup -o "$subsystem" "ltp_cgroup" "$mount_point"
+ else
+ tst_resm TINFO "Subsystem $subsystem is mounted at $mount_point"
+ fi
+}
+
+cleanup()
+{
+ tst_rmdir
+
+ killall -9 cgroup_fj_proc >/dev/null 2>&1
+
+ tst_resm TINFO "Removing all ltp subgroups..."
+
+ find "$mount_point/ltp/" -depth -type d -exec rmdir '{}' \;
+
+ if [ -z "$try_umount" ]; then
+ return
+ fi
+
+ if grep -q "$mount_point" /proc/mounts; then
+ umount "$mount_point"
+ fi
+
+ if [ -e "$mount_point" ]; then
+ rmdir "$mount_point"
+ fi
+}
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh
index 873e1d3c5..b2d8e22fc 100755
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh
+++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh
@@ -1,8 +1,11 @@
-#!/bin/bash
+#!/bin/sh
################################################################################
## ##
## Copyright (c) 2009 FUJITSU LIMITED ##
+## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
+## Copyright (c) 2015 Cedric Hnyda <chnyda@suse.com> ##
+## Copyright (c) 2015-2016 Cyril Hrubis <chrubis@suse.cz> ##
## ##
## This program is free software; you can redistribute it and#or modify ##
## it under the terms of the GNU General Public License as published by ##
@@ -18,243 +21,193 @@
## along with this program; if not, write to the Free Software Foundation, ##
## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
## ##
-## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
-## ##
################################################################################
+TCID="cgroup_fj_function2"
+TST_TOTAL=7
+
+. cgroup_fj_common.sh
+
subsystem=$1
-remount_use=$2
-release_agent_para=$3
-subgroup_exist=$4
-attach_operation=$5
-remove_operation=$6
-notify_on_release=$7
-release_agent_echo=$8
-
-remount_use_str="";
-release_agent_para_str="";
-notify_on_release_str="";
-release_agent_str="";
-mounted=1;
-
-expected=1;
-
-# Create some processes and move them to cgroups
-pid=0;
-pid2=0;
-
-# not output debug info
-no_debug=0
-
-usage()
+
+usage_and_exit()
{
- echo "usage of cgroup_fj_function.sh: "
- echo " ./cgroup_fj_function.sh -subsystem -remount_use -release_agent_para"
- echo " -subgroup_exist -attach_operation -remove_operation"
- echo " -notify_on_release -release_agent_echo"
- echo " subsystem's usable number"
- echo " debug"
- echo " cpuset"
- echo " ns"
- echo " cpu"
- echo " cpuacct"
- echo " memory"
- echo " debug,debug: debug,debug"
- echo " nonexistent: (nonexistent subsystem), e.g. abc"
- echo " freezer"
- echo " devices"
- echo " blkio"
- echo " hugetlb"
- echo " net_cls"
- echo " net_prio"
- echo " pids"
- echo " remount_use's usable number"
- echo " yes: do not use remount in "-o"'s parameter"
- echo " no: use it"
- echo " release_agent_para's usable number"
- echo " 1: don't use release_agent_para= in "-o"'s parameter"
- echo " 2: empty after "=""
- echo " 3: available commad"
- echo " 4: command name exclude full path"
- echo " 5: command in /sbin"
- echo " 6: command in other directory"
- echo " 7: nonexistent command"
- echo " 8: no-permission command"
- echo " subgroup_exist's usable number"
- echo " yes: subgroup will been created"
- echo " no: subgroup will not been created"
- echo " attach_operation's usable number"
- echo " 1: attach nothing"
- echo " 2: attach one process by echo"
- echo " 3: attach all processes in root group by echo"
- echo " 4: attach child forked processes automatically"
- echo " 5: move one process to other subgroup by echo"
- echo " 6: move all processes to other subgroup by echo"
- echo " remove_operation's usable number"
- echo " 1: remove nothing"
- echo " 2: remove some processes by echo"
- echo " 3: remove all processes in sub group by echo"
- echo " 4: remove some processes by kill"
- echo " 5: remove all forked processes by kill"
- echo " notify_on_release's usable number"
- echo " 1: echo 0 to notify_on_release"
- echo " 2: echo 1 to notify_on_release"
- echo " 3: echo 2 to notify_on_release"
- echo " 4: echo -1 to notify_on_release"
- echo " 5: echo 0ddd to notify_on_release"
- echo " 6: echo 1ddd to notify_on_release"
- echo " 7: echo ddd1 to notify_on_release"
- echo " release_agent_echo's usable number"
- echo " 1: echo nothing to release_agent"
- echo " 2: available commad"
- echo " 3: command name exclude full path"
- echo " 4: command in /sbin"
- echo " 5: command in other directory"
- echo " 6: nonexistent command"
- echo " 7: no-permission command"
- echo "example: ./cgroup_fj_function.sh debug yes 1 yes 1 1 1 1"
- echo " will use "debug" to test, will not use option "remount","release_agent""
- echo " in in "-o"'s parameter, will create some subgroup, will not attach/remove any process"
- echo " will echo 0 to notify_on_release and will not echo anything to release_agent"
+ echo "usage of cgroup_fj_function2.sh: "
+ echo " ./cgroup_fj_function2.sh subsystem"
+ echo "example: ./cgroup_fj_function2.sh cpuset"
+
+ tst_brkm TBROK "$1"
}
-export TMPFILE=$TMPDIR/tmp_tasks.$$
+if [ "$#" -ne "1" ]; then
+ usage_and_exit "Invalid number of paramters"
+fi
-. cgroup_fj_utility.sh
+# Move a task from group to group
+test1()
+{
+ if ! attach_and_check "$pid" "$start_path/ltp_1"; then
+ tst_resm TFAIL "Failed to attach task"
+ return
+ fi
-########################## main #######################
-if [ "$#" -ne "8" ]; then
- echo "ERROR: Wrong input parameters... Exiting test";
- usage;
- exit -1;
-fi
+ if ! attach_and_check "$pid" "$start_path"; then
+ tst_resm TFAIL "Failed to attach task"
+ return
+ fi
-check_para;
-if [ $? -ne 0 ]; then
- usage;
- exit -1;
-fi
-setup;
+ tst_resm TPASS "Task attached succesfully"
+}
-cgroup_fj_proc &
-pid=$!
+# Group can be renamed with mv
+test2()
+{
+ create_subgroup "$start_path/ltp_2"
-mkdir_subgroup;
+ if ! mv "$start_path/ltp_2" "$start_path/ltp_3"; then
+ tst_resm TFAIL "Failed to move $start_path/ltp_2 to $start_path/ltp_3"
+ rmdir "$start_path/ltp_2"
+ return
+ fi
-# cpuset.cpus and cpuset.mems should be specified with suitable value
-# before attaching operation if subsystem is cpuset
-if [ "$subsystem" == "cpuset" ]; then
- exist=`grep -w cpuset /proc/cgroups | cut -f1`;
- if [ "$exist" != "" ]; then
- do_echo 1 1 `cat $mount_point/cpuset.cpus` $mount_point/ltp_subgroup_1/cpuset.cpus;
- do_echo 1 1 `cat $mount_point/cpuset.mems` $mount_point/ltp_subgroup_1/cpuset.mems;
- fi
-fi
+ if ! rmdir "$start_path/ltp_3"; then
+ tst_resm TFAIL "Failed to remove $start_path/ltp_3"
+ return
+ fi
-# attaching operation
-case $attach_operation in
-"1" )
- ;;
-"2" )
- do_echo 1 1 $pid $mount_point/ltp_subgroup_1/tasks;
- ;;
-"3" )
- cgroup_fj_proc &
- pid2=$!
- cat $mount_point/tasks > $TMPFILE
- nlines=`cat $TMPFILE | wc -l`
- for i in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$i""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- #For kernel 3.4.0 and higher, kernel disallow attaching kthreadd or
- #threads with flag 0x04000000 to cgroups.
- #kernel commit:
- #c4c27fbdda4e8ba87806c415b6d15266b07bce4b
- #14a40ffccd6163bbcd1d6f32b28a88ffe6149fc6
- tst_kvercmp 3 4 0
- if [ $? -ne 0 ]; then
- thread_flag=$(awk '{print $9}' /proc/$cur_pid/stat)
- thread_name=$(awk '{print $2}' /proc/$cur_pid/status | head -1)
- if [ "$thread_name" = "kthreadd" -o $((${thread_flag}&0x04000000)) -ne 0 ];then
- continue
- fi
- fi
- do_echo 1 1 "$cur_pid" $mount_point/ltp_subgroup_1/tasks
- fi
- done
- ;;
-"4" )
- do_echo 1 1 $pid $mount_point/ltp_subgroup_1/tasks;
- tst_sleep 100ms
- do_kill 1 1 10 $pid
- ;;
-esac
-
-# echo notify_on_release that analysed from parameter
-case $notify_on_release in
-"1"|"2"|"3")
- expected=1
- ;;
-*)
- expected=0
- ;;
-esac
-
-do_echo 1 $expected $notify_on_release_str $mount_point/ltp_subgroup_1/notify_on_release;
-
-# echo release_agent that analysed from parameter
-if [ $release_agent_echo -ne 1 ]; then
- do_echo 1 1 $release_agent_str $mount_point/release_agent;
-fi
+ tst_resm TPASS "Successfully moved $start_path/ltp_2 to $start_path/ltp_3"
+}
-tst_sleep 100ms
-
-# pid could not be echoed from subgroup if subsystem is ( or include ) ns,
-# so we kill them here
-if [ "$subsystem" == "ns" ]; then
- do_kill 1 1 9 $pid
- do_kill 1 1 9 $pid2
-# removing operation
-else
- case $remove_operation in
- "1" )
- ;;
- "2" )
- do_echo 1 1 $pid $mount_point/tasks
- if [ $pid2 -ne 0 ] ; then
- do_echo 1 1 $pid2 $mount_point/tasks
- fi
- ;;
- "3" )
- cat $mount_point/ltp_subgroup_1/tasks > $TMPFILE
- nlines=`cat $TMPFILE | wc -l`
- if [ $nlines -ne 0 ]; then
- for i in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$i""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- do_echo 1 1 "$cur_pid" $mount_point/tasks
- fi
- done
- fi
- ;;
- "4" )
- do_kill 1 1 9 $pid
- ;;
- "5" )
- do_kill 1 1 9 $pid
- do_kill 1 1 9 $pid2
- ;;
- esac
-fi
+# Group can be renamed with mv unless the target name exists
+test3()
+{
+ create_subgroup "$start_path/ltp_2"
+
+ if mv "$start_path/ltp_2" "$start_path/ltp_1" > /dev/null 2>&1; then
+ tst_resm TFAIL "Moved $start_path/ltp_2 over existing $start_path/ltp_1"
+ return
+ fi
+
+ tst_resm TPASS "Failed to move $start_path/ltp_2 over existing $start_path/ltp_1"
+
+ ROD rmdir "$start_path/ltp_2"
+}
+
+# Group with attached task cannot be removed
+test4()
+{
+ if ! attach_and_check "$pid" "$start_path/ltp_1"; then
+ tst_resm TFAIL "Failed to attach $pid to $start_path/ltp_1"
+ return
+ fi
+
+ if rmdir "$start_path/ltp_1" > /dev/null 2>&1; then
+ tst_resm TFAIL "Removed $start_path/ltp_1 which contains task $pid"
+ create_subgroup "$start_path/ltp_1"
+ return
+ fi
+
+ tst_resm TPASS "Group $start_path/ltp_1 with task $pid cannot be removed"
+}
+
+# Group with a subgroup cannot be removed
+test5()
+{
+ create_subgroup "$start_path/ltp_1/a"
+
+ if rmdir "$start_path/ltp_1" > /dev/null 2>&1; then
+ tst_resm TFAIL "Removed $start_path/ltp_1 which contains subdir 'a'"
+ return
+ fi
+
+ tst_resm TPASS "Dir $start_path/ltp_1 with subdir 'a' cannot be removed"
+
+ ROD rmdir "$start_path/ltp_1/a"
+
+ ROD echo "$pid" > "$start_path/tasks"
+}
+
+# Group cannot be moved outside of hierarchy
+test6()
+{
+ if mv "$start_path/ltp_1" "$PWD/ltp" > /dev/null 2>&1; then
+ tst_resm TFAIL "Subgroup $start_path/ltp_1 outside hierarchy to $PWD/ltp"
+ return
+ fi
+
+ tst_resm TPASS "Subgroup $start_path/ltp_1 cannot be moved to $PWD/ltp"
+}
+
+# Tasks file cannot be removed
+test7()
+{
+ if rm "$start_path/ltp_1/tasks" > /dev/null 2>&1; then
+ tst_resm TFAIL "Tasks file $start_path/ltp_1/tasks could be removed"
+ return
+ fi
+
+ tst_resm TPASS "Tasks file $start_path/ltp_1/tasks cannot be removed"
+}
+
+# Test notify_on_release with invalid inputs
+test8()
+{
+ if echo "-1" > "$start_path/ltp_1/notify_on_release" 2>/dev/null; then
+ tst_resm TFAIL "Can write -1 to $start_path/ltp_1/notify_on_release"
+ return
+ fi
+
+ if echo "ltp" > "$start_path/ltp_1/notify_on_release" 2>/dev/null; then
+ tst_resm TFAIL "Can write ltp to $start_path/ltp_1/notify_on_release"
+ return
+ fi
+
+ tst_resm TPASS "Cannot write invalid values to $start_path/ltp_1/notify_on_release"
+}
+
+# Test that notify_on_release can be changed
+test9()
+{
+ local notify=$(ROD cat "$start_path/ltp_1/notify_on_release")
+ local value
+
+ if [ "$notify" -eq 0 ]; then
+ value=1
+ else
+ value=0
+ fi
+
+ if ! echo "$value" > "$start_path/ltp_1/notify_on_release"; then
+ tst_resm TFAIL "Failed to set $start_path/ltp_1/notify_on_release to $value"
+ return
+ fi
+
+ ROD echo "$notify" > "$start_path/ltp_1/notify_on_release"
+
+ tst_resm TPASS "Set $start_path/ltp_1/notify_on_release to $value"
+}
+
+setup
+
+cgroup_fj_proc&
+pid=$!
+
+start_path="$mount_point/ltp"
+
+create_subgroup "$start_path"
+create_subgroup "$start_path/ltp_1"
-tst_sleep 100ms
+test1
+test2
+test3
+test4
+test5
+test6
+test7
+test8
+test9
-do_rmdir 0 1 $mount_point/ltp_subgroup_*
+ROD rmdir "$start_path/ltp_1"
+ROD kill -9 $pid
-cleanup
-do_kill 1 1 9 $pid
-do_kill 1 1 9 $pid2
-tst_sleep 100ms
-exit 0;
+tst_exit
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function2.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function2.sh
deleted file mode 100755
index 68186a809..000000000
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function2.sh
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/bin/bash
-
-################################################################################
-## ##
-## Copyright (c) 2009 FUJITSU LIMITED ##
-## ##
-## This program is free software; you can redistribute it and#or modify ##
-## it under the terms of the GNU General Public License as published by ##
-## the Free Software Foundation; either version 2 of the License, or ##
-## (at your option) any later version. ##
-## ##
-## This program is distributed in the hope that it will be useful, but ##
-## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
-## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
-## for more details. ##
-## ##
-## You should have received a copy of the GNU General Public License ##
-## along with this program; if not, write to the Free Software Foundation, ##
-## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
-## ##
-## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
-## ##
-################################################################################
-
-caseno=$1
-subsystem=$2
-pid=0;
-release_agent_para=1;
-release_agent_echo=1;
-subsystem_str="debug";
-remount_use_str="";
-noprefix_use_str="";
-release_agent_para_str="";
-mounted=1
-
-# not output debug info when stress test
-no_debug=0
-
-usage()
-{
- echo "usage of cgroup_fj_function2.sh: "
- echo " ./cgroup_fj_function2.sh -case number[1-13] -subsystem"
- echo "example: ./cgroup_fj_function2.sh 1 cpuset"
- echo " will test the 1st case with cpuset"
-}
-
-exit_parameter()
-{
- echo "ERROR: Wrong input parametes... Exiting test"
- exit -1;
-}
-
-export TMPFILE=$TMPDIR/tmp_tasks.$$
-
-. cgroup_fj_utility.sh
-
-case1()
-{
- do_mkdir 1 1 $mount_point/ltp_subgroup_2
-
- do_echo 1 0 $pid $mount_point/ltp_subgroup_1/tasks
- tst_sleep 100ms
- do_echo 1 0 $pid $mount_point/ltp_subgroup_2/tasks
- tst_sleep 100ms
- do_echo 1 1 $pid $mount_point/tasks
-}
-
-case2()
-{
- do_mkdir 1 1 $mount_point/ltp_subgroup_2
-
- cgroup_fj_proc &
- pid2=$!
- tst_sleep 100ms
-
- cat $mount_point/tasks > $TMPFILE
- nlines=`cat $TMPFILE | wc -l`
- for i in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$i""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- do_echo 1 0 "$cur_pid" $mount_point/ltp_subgroup_1/tasks
- fi
- done
-
- tst_sleep 100ms
-
- cat $mount_point/ltp_subgroup_1/tasks > $TMPFILE
- nlines=`cat $TMPFILE | wc -l`
- for i in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$i""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- do_echo 1 0 "$cur_pid" $mount_point/ltp_subgroup_2/tasks
- fi
- done
-
- tst_sleep 100ms
-
- cat $mount_point/ltp_subgroup_2/tasks > $TMPFILE
- nlines=`cat $TMPFILE | wc -l`
- for i in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$i""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- do_echo 1 1 "$cur_pid" $mount_point/tasks
- fi
- done
-}
-
-case3()
-{
- do_mkdir 0 1 $mount_point/ltp_subgroup_2
-
- do_mv 0 1 $mount_point/ltp_subgroup_1 $mount_point/ltp_subgroup_3
-}
-
-case4()
-{
- do_mkdir 0 1 $mount_point/ltp_subgroup_2
-
- do_mv 0 0 $mount_point/ltp_subgroup_1 $mount_point/ltp_subgroup_2
-}
-
-case5()
-{
- mount_str="`mount -l | grep /dev/cgroup2`"
- if [ "$mount_str" != "" ]; then
- do_umount 1 1 /dev/cgroup2
- fi
-
- if [ -e /dev/cgroup2 ]; then
- do_rmdir 0 1 /dev/cgroup2
- fi
-
- do_mkdir 0 1 /dev/cgroup2
-
- do_mkdir 0 1 /dev/cgroup2/ltp_subgroup_2
-
- do_mv 0 1 $mount_point/ltp_subgroup_1 $mount_point/ltp_subgroup_2
-
- tst_sleep 100ms
-
- do_rmdir 0 1 /dev/cgroup2/ltp_subgroup_2
- do_rmdir 0 1 /dev/cgroup2
-}
-
-case6()
-{
- do_mkdir 0 1 $mount_point/ltp_subgroup_2
-
- do_mv 0 0 $mount_point/ltp_subgroup_1 $mount_point/tasks
-}
-
-case7()
-{
- do_echo 0 1 $pid $mount_point/ltp_subgroup_1/tasks
-
- tst_sleep 100ms
-
- do_rmdir 0 0 $mount_point/ltp_subgroup_1
-
- tst_sleep 100ms
-
- do_echo 1 1 $pid $mount_point/tasks
-}
-
-case8()
-{
- do_mkdir 0 1 $mount_point/ltp_subgroup_1/ltp_subgroup_1_1
-
- tst_sleep 100ms
-
- do_rmdir 0 0 $mount_point/ltp_subgroup_1
-
- do_rmdir 1 1 $mount_point/ltp_subgroup_1/ltp_subgroup_1_1
-}
-
-case9()
-{
- do_rmdir 0 1 $mount_point/ltp_subgroup_1
-}
-
-########################## main #######################
-if [ "$#" -ne "2" ] || [ $caseno -lt 1 ] || [ $caseno -gt 9 ]; then
- usage;
- exit_parameter;
-fi
-
-exist_subsystem $subsystem
-
-setup;
-
-cgroup_fj_proc &
-pid=$!
-mkdir_subgroup;
-
-case$caseno
-
-cleanup;
-do_kill 1 1 9 $pid
-tst_sleep 100ms
-exit 0;
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_release_agent b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_release_agent
deleted file mode 100755
index bef387e42..000000000
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_release_agent
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-TESTROOT=`pwd`
-
-if [ -e /dev/cgroup/ltp_subgroup_1 ]
-then
- cd /dev/cgroup
- rmdir -p ltp_subgroup_*/ 2>/dev/null
- rmdir /dev/cgroup/ltp_subgroup_* 2> /dev/null
- cd $TESTROOT
-fi
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh
index d2338f991..698aa4979 100755
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh
+++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh
@@ -1,8 +1,11 @@
-#!/bin/bash
+#!/bin/sh
################################################################################
## ##
## Copyright (c) 2009 FUJITSU LIMITED ##
+## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
+## Copyright (c) 2015 Cedric Hnyda <chnyda@suse.com> ##
+## Copyright (c) 2015-2016 Cyril Hrubis <chrubis@suse.cz> ##
## ##
## This program is free software; you can redistribute it and#or modify ##
## it under the terms of the GNU General Public License as published by ##
@@ -18,251 +21,145 @@
## along with this program; if not, write to the Free Software Foundation, ##
## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
## ##
-## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
-## ##
################################################################################
-subsystem=$1 # debug, cpuset, ns, cpu, cpuacct, memory...
-subgroup_num=$2 #subgroup number in the same hierarchy
- #1: 1
- #2: 100
-subgroup_hiers=$3 #number of subgroup's hierarchy
- #1: 1
- #2: 100
-attach_operation=$4 # 1: attach one process to every subcgroup
- # 2: attach all processes in root group to one subcgroup
- # 3: attach all processes in root group to every subcgroup
-mounted=1
-
-usage()
-{
- echo "usage of cgroup_fj_stress.sh: "
- echo " ./cgroup_fj_stress.sh -subsystem -subgroup_num -subgroup_hiers -attach_operation"
- echo " subsystem's usable number"
- echo " debug"
- echo " cpuset"
- echo " ns"
- echo " cpu"
- echo " cpuacct"
- echo " memory"
- echo " freezer"
- echo " devices"
- echo " blkio"
- echo " hugetlb"
- echo " net_cls"
- echo " net_prio"
- echo " pids"
- echo " subgroup_num's usable number"
- echo " (subgroup number in the same hierarchy)"
- echo " 1"
- echo " 100"
- echo " subgroup_hiers's usable number"
- echo " (number of subgroup's hierarchy)"
- echo " 1"
- echo " 100"
- echo " attach_operation's usable number"
- echo " 1: attach one process to every subcgroup"
- echo " 2: attach all processes in root group to one subcgroup"
- echo " 3: attach all processes in root group to every subcgroup"
- echo "example: ./cgroup_fj_stress.sh debug 1 1 1 1"
- echo " will use "debug" to test, will mount once, will create one subgroup in same hierarchy,"
- echo " will create one hierarchy, will attach one process to every subcgroup"
-}
-
-exit_parameter()
-{
- echo "ERROR: Wrong input parameters... Exiting test"
- exit -1;
-}
-
-export TMPFILE=$TMPDIR/tmp_tasks.$$
+TCID="cgroup_fj_stress"
+TST_TOTAL=1
-. cgroup_fj_utility.sh
+. cgroup_fj_common.sh
-pid=0;
-release_agent_para=1;
-release_agent_echo=1;
-subsystem_str=$subsystem;
-if [ "$?" -ne "0" ] || [ "$#" -ne "4" ]; then
- usage;
- exit_parameter;
-fi
-remount_use_str="";
-noprefix_use_str="";
-release_agent_para_str="";
-ulimit_u=`ulimit -u`
-no_debug=1
-cur_subgroup_path1=""
-cur_subgroup_path2=""
+subsystem="$1"
+subgroup_num="$2"
+subgroup_depth="$3"
+attach_operation="$4"
-get_subgroup_path1()
+usage_and_exit()
{
- cur_subgroup_path1=""
- if [ "$#" -ne 1 ] || [ "$1" -lt 1 ] || [ "$1" -gt $ulimit_u ]; then
- return;
- fi
-
- cur_subgroup_path1="$mount_point/ltp_subgroup_$1/"
+ echo "usage of cgroup_fj_stress.sh: "
+ echo " ./cgroup_fj_stress.sh subsystem subgroup_num subgroup_depth attach_operation"
+ echo " subgroup_num"
+ echo " number of subgroups created in group"
+ echo " subgroup_depth"
+ echo " depth of the created tree"
+ echo " attach_operation"
+ echo " none - do not attach anything"
+ echo " one - move one processe around"
+ echo " each - attach process to each subgroup"
+ echo "example: ./cgroup_fj_stress.sh cpuset 1 1 one"
+ echo
+ tst_brkm TBROK "$1"
}
-get_subgroup_path2()
-{
- cur_subgroup_path2=""
- if [ "$#" -ne 1 ] || [ "$1" -lt 2 ] || [ "$1" -gt $ulimit_u ]; then
- return;
- fi
-
- for i in `seq 2 $1`
- do
- cur_subgroup_path2="$cur_subgroup_path2""s/"
- done
-}
+if [ "$#" -ne "4" ]; then
+ usage_and_exit "Wrong number of parameters, expected 4"
+fi
case $subgroup_num in
-''|*[!0-9]*)
- usage
- exit_parameter;;
+ ''|*[!0-9]*) usage_and_exit "Number of subgroups must be possitive integer";;
*) ;;
esac
-case $subgroup_hiers in
-''|*[!0-9]*)
- usage
- exit_parameter;;
+case $subgroup_depth in
+ ''|*[!0-9]*) usage_and_exit "Depth of the subgroup tree must be possitive integer";;
*) ;;
esac
-########################## main #######################
-exist_subsystem;
-setup;
+case $attach_operation in
+ 'none'|'one'|'each');;
+ *) usage_and_exit "Invalid attach operation: $attach_operation";;
+esac
+
+setup
-cgroup_fj_proc &
-pid=$!
+export TMPFILE=./tmp_tasks.$$
-cpus=0
-mems=0
-exist_cpuset=0
-exist_cpuset=`grep -w cpuset /proc/cgroups | cut -f1`;
-if [ "$subsystem" == "cpuset" ]; then
- if [ "$exist_cpuset" != "" ]; then
- cpus=`cat $mount_point/cpuset.cpus`
- mems=`cat $mount_point/cpuset.mems`
- fi
-fi
+count=0
+
+build_subgroups()
+{
+ local cur_path="$1"
+ local cur_depth="$2"
+ local i
-mkdir_subgroup;
+ if [ "$cur_depth" -gt "$subgroup_depth" ]; then
+ return
+ fi
-# cpuset.cpus and cpuset.mems should be specified with suitable value
-# before attachint operation if subsystem is cpuset
-if [ "$subsystem" == "cpuset" ]; then
- if [ "$exist_cpuset" != "" ]; then
- do_echo 1 1 "$cpus" $mount_point/ltp_subgroup_1/cpuset.cpus;
- do_echo 1 1 "$mems" $mount_point/ltp_subgroup_1/cpuset.mems;
- fi
-fi
+ create_subgroup "$cur_path"
+ count=$((count+1))
-get_subgroup_path2 $subgroup_hiers
-count=0
-pathes[1]=""
-for i in `seq 1 $subgroup_num`
-do
- get_subgroup_path1 $i
- do_mkdir 1 1 $cur_subgroup_path1
- if [ "$subsystem" == "cpuset" ]; then
- if [ "$exist_cpuset" != "" ]; then
- do_echo 1 1 "$cpus" "$cur_subgroup_path1""cpuset.cpus";
- do_echo 1 1 "$mems" "$cur_subgroup_path1""cpuset.mems";
- fi
- fi
- let "count = $count + 1"
- pathes[$count]="$cur_subgroup_path1"
- for j in `seq 2 $subgroup_hiers`
- do
- get_subgroup_path2 $j
- do_mkdir 1 1 "$cur_subgroup_path1""$cur_subgroup_path2" 1
- if [ "$subsystem" == "cpuset" ]; then
- if [ "$exist_cpuset" != "" ]; then
- do_echo 1 1 "$cpus" "$cur_subgroup_path1""$cur_subgroup_path2""cpuset.cpus";
- do_echo 1 1 "$mems" "$cur_subgroup_path1""$cur_subgroup_path2""cpuset.mems";
- fi
- fi
- let "count = $count + 1"
- pathes[$count]="$cur_subgroup_path1""$cur_subgroup_path2"
- done
-done
-echo "...mkdired $count times"
+ for i in $(seq 1 $subgroup_num); do
+ build_subgroups "$cur_path/$i" $((cur_depth+1))
+ done
+}
-tst_sleep 100ms
+attach_task()
+{
+ local cur_path="$1"
+ local cur_depth="$2"
+ local ppid="$3"
+ local i
+
+ if [ "$cur_depth" -gt "$subgroup_depth" ]; then
+ return
+ fi
+
+ if [ -z "$ppid" ]; then
+ cgroup_fj_proc&
+ pid=$!
+ else
+ pid="$ppid"
+ fi
+
+ if ! attach_and_check "$pid" "$cur_path"; then
+ fail=1
+ fi
+
+ for i in $(seq 1 $subgroup_num); do
+ local new_path="$cur_path/$i"
+ attach_task "$new_path" $((cur_depth+1)) "$ppid"
+ done
+
+ if [ -n "$ppid" ]; then
+ if ! attach_and_check "$pid" "$cur_path"; then
+ fail=1
+ fi
+ fi
+}
+
+start_path="$mount_point/ltp"
+
+tst_resm TINFO "Creating subgroups ..."
+
+build_subgroups "$start_path" 0
+
+tst_resm TINFO "... mkdired $count times"
case $attach_operation in
-"1" )
- for i in `seq 1 $count`
- do
- do_echo 1 1 $pid "${pathes[$i]}""tasks"
- done
- do_echo 1 1 $pid $mount_point/tasks
- ;;
-"2" )
- pathes2[0]="$mount_point"
- pathes2[1]="${pathes[$count]}"
- pathes2[3]="$mount_point/"
- for i in `seq 1 $nlines`
- do
- j=$i
- let "j = $j + 1"
- cat "${pathes2[$i]}tasks" > $TMPFILE
- nlines=`cat "$TMPFILE" | wc -l`
- if [ $no_debug -ne 1 ]; then
- echo "DEBUG: move $nlines processes from "$i"th path to "$j"th"
- fi
- for k in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$k""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- do_echo 0 1 "$cur_pid" "${pathes[$j]}tasks"
- fi
- done
- done
- ;;
-"3" )
- count2=$count
- let "count2 = $count2 + 1"
- pathes[0]="$mount_point/"
- pathes[$count2]="$mount_point/"
- for i in `seq 0 $count`
- do
- j=$i
- let "j = $j + 1"
- cat "${pathes[$i]}tasks" > $TMPFILE
- nlines=`cat "$TMPFILE" | wc -l`
- if [ $no_debug -ne 1 ]; then
- echo "DEBUG: move $nlines processes from "$i"th path to "$j"th"
- fi
- for k in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$k""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- do_echo 0 1 "$cur_pid" "${pathes[$j]}tasks"
- fi
- done
- done
- ;;
+"one" )
+ cgroup_fj_proc &
+ pid=$!
+
+ tst_resm TINFO "Moving one task around"
+ attach_task "$start_path" 0 "$pid"
+ ROD kill -9 "$pid"
+ wait "$pid"
+ ;;
+"each" )
+ tst_resm TINFO "Attaching task to each subgroup"
+ attach_task "$start_path" 0
+ ROD killall -9 "cgroup_fj_proc"
+ # Wait for attached tasks to terminate
+ wait
+ ;;
* )
- ;;
+ ;;
esac
-reclaim_foundling;
-for i in `seq 1 $count`
-do
- j=i
- let "j = $count - $j + 1"
- do_rmdir 1 1 ${pathes[$j]}
-done
-do_rmdir 0 1 $mount_point/ltp_subgroup_*
-
-tst_sleep 100ms
+if [ -n "$fail" ]; then
+ tst_resm TFAIL "Attaching tasks failed!"
+else
+ tst_resm TPASS "All done!"
+fi
-cleanup;
-do_kill 1 1 9 $pid
-tst_sleep 100ms
-exit 0;
+tst_exit
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_utility.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_utility.sh
deleted file mode 100755
index cf97e5415..000000000
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_utility.sh
+++ /dev/null
@@ -1,569 +0,0 @@
-#!/bin/bash
-
-################################################################################
-## ##
-## Copyright (c) 2009 FUJITSU LIMITED ##
-## ##
-## This program is free software; you can redistribute it and#or modify ##
-## it under the terms of the GNU General Public License as published by ##
-## the Free Software Foundation; either version 2 of the License, or ##
-## (at your option) any later version. ##
-## ##
-## This program is distributed in the hope that it will be useful, but ##
-## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
-## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
-## for more details. ##
-## ##
-## You should have received a copy of the GNU General Public License ##
-## along with this program; if not, write to the Free Software Foundation, ##
-## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
-## ##
-## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
-## ##
-################################################################################
-
-exist_subsystem()
-{
- checksubsystem=""
- case "$#" in
- "0" )
- checksubsystem=$subsystem
- ;;
- "1" )
- checksubsystem=$1
- ;;
- "*" )
- if [ "$#" -gt "1" ]; then
- exit -1
- fi
- ;;
- esac
-
- if [ "$checksubsystem" = "" ]; then
- exit -1
- fi
-
- exist=`grep -w $checksubsystem /proc/cgroups | cut -f1`;
- if [ "$exist" = "" ]; then
- tst_brkm TCONF NULL "Subsystem $subsystem not supported"
- exit 32
- fi
-}
-
-get_mount_point()
-{
- check_point=`grep -w $subsystem /proc/mounts | cut -f 2 | cut -d " " -f2`
- echo $check_point
-}
-
-get_subsystem()
-{
- case $subsystem in
- "debug,debug" )
- exist_subsystem "debug";
- ;;
- "nonexistent" )
- subsystem="abc";
- ;;
- * )
- exist_subsystem;
- ;;
- esac
-}
-
-get_remount_use()
-{
- case $remount_use in
- "yes" )
- remount_use_str="";
- ;;
- "no" )
- remount_use_str="remount";
- ;;
- * )
- return -1
- ;;
- esac
-}
-
-get_release_agent_para()
-{
- case $release_agent_para in
- "1" )
- release_agent_para_str="";
- ;;
- "2" )
- release_agent_para_str=" ";
- ;;
- "3" )
- release_agent_para_str="/root/cgroup_fj_release_agent";
- ;;
- "4" )
- release_agent_para_str="cgroup_fj_release_agent";
- ;;
- "5" )
- release_agent_para_str="/sbin/cgroup_fj_release_agent";
- ;;
- "6" )
- release_agent_para_str="/root/cgroup_fj_release_agent";
- ;;
- "7" )
- release_agent_para_str="/sbin/abc";
- ;;
- "8" )
- release_agent_para_str="/sbin/cgroup_fj_release_agent";
- ;;
- * )
- return -1
- ;;
- esac
-}
-
-get_notify_on_release()
-{
- case $notify_on_release in
- "1" )
- notify_on_release_str="0";
- ;;
- "2" )
- notify_on_release_str="1";
- ;;
- "3" )
- notify_on_release_str="2";
- ;;
- "4" )
- notify_on_release_str="-1";
- ;;
- "5" )
- notify_on_release_str="0ddd";
- ;;
- "6" )
- notify_on_release_str="1ddd";
- ;;
- "7" )
- notify_on_release_str="ddd1";
- ;;
- * )
- return -1
- ;;
- esac
-}
-
-get_release_agent()
-{
- case $release_agent_echo in
- "1" )
- release_agent_str="";
- ;;
- "2" )
- release_agent_str="/root/cgroup_fj_release_agent";
- ;;
- "3" )
- release_agent_str="cgroup_fj_release_agent";
- ;;
- "4" )
- release_agent_str="/sbin/cgroup_fj_release_agent";
- ;;
- "5" )
- release_agent_str="/root/cgroup_fj_release_agent";
- ;;
- "6" )
- release_agent_str="/sbin/abc";
- ;;
- "7" )
- release_agent_str="/sbin/cgroup_fj_release_agent";
- ;;
- * )
- return -1
- ;;
- esac
-}
-
-# check the exit status, and exit or echo info.
-# exit status expected value echo info exit or not
-# 0 0 no no
-# 0 1 yes yes
-# not 0 0 yes yes
-# not 0 1 no no
-do_exit()
-{
- if [ "$#" -ne "3" ]; then
- echo "ERROR: exit failed,your parameter is wrong..Exiting test"
- exit -1
- fi
-
- exit_here=$1
- expected=$2
- exit_status=$3
- if [ $exit_status -eq 0 ] ;then
- if [ $expected -lt 1 ]; then
- if [ $exit_here -ge 1 ]; then
- cleanup;
- exit -1
- fi
- fi
- else
- if [ $expected -ge 1 ]; then
- if [ $exit_here -ge 1 ]; then
- cleanup;
- exit -1
- fi
- else
- if [ $exit_here -ge 1 ]; then
- cleanup;
- exit 0
- fi
- fi
- fi
-}
-
-do_echo()
-{
- if [ "$#" -ne "4" ]; then
- echo "ERROR: echo failed,your parameter is wrong..Exiting test"
- exit -1
- fi
-
- exit_here=$1
- expected=$2
- value=$3
- target=$4
-
- if [ $no_debug -ne 1 ]; then
- if [ $expected -ge 1 ]; then
- echo "\"echo $value > $target\" (expected: success)"
- else
- echo "\"echo $value > $target\" (expected: fail)"
- fi
- fi
-
- `echo $value > $target`
- do_exit $exit_here $expected $?;
-}
-
-do_mkdir()
-{
- if [ "$#" -ne "3" ] && [ "$#" -ne "4" ]; then
- echo "ERROR: mkdir failed,your parameter is wrong..Exiting test"
- exit -1
- fi
-
- exit_here=$1
- expected=$2
- target=$3
- parents=0
- if [ "$#" -eq "4" ] && [ "$4" -ne 0 ]; then
- parents=1
- fi
-
- if [ $no_debug -ne 1 ]; then
- if [ $expected -ge 1 ]; then
- echo "\"mkdir $target\" (expected: success)"
- else
- echo "\"mkdir $target\" (expected: fail)"
- fi
- fi
-
- if [ $parents -ne "1" ] && [ -e $target ]; then
- do_rmdir $exit_here 1 $target
- fi
-
- if [ $parents -ne "1" ]; then
- mkdir $target
- else
- mkdir -p $target
- fi
- do_exit $exit_here $expected $?;
-}
-
-do_rmdir()
-{
- if [ "$#" -lt "3" ]; then
- echo "ERROR: rmdir failed,your parameter is wrong..Exiting test"
- exit -1
- fi
-
- exit_here=$1
- expected=$2
- target=$3
-
- if ! [ -e $target ]; then
- echo "INFO: $target is not exist"
- return
- fi
-
- if [ $no_debug -ne 1 ]; then
- if [ $expected -ge 1 ]; then
- echo "\"rmdir $target\" (expected: success)"
- else
- echo "\"rmdir $target\" (expected: fail)"
- fi
- fi
-
- rmdir $3 $4 $5
- do_exit $exit_here $expected $?;
-}
-
-do_mount()
-{
- if [ "$#" -ne "4" ] && [ "$#" -ne "5" ] ; then
- echo "ERROR: mount failed,your parameter is wrong..Exiting test"
- exit -1
- fi
-
- exit_here=$1
- expected=$2
- para_o=$3
- target=$4
- something="cgroup"
- if [ "$#" -eq "5" ]; then
- something=$5
- fi
-
- if [ $no_debug -ne 1 ]; then
- if [ $expected -ge 1 ]; then
- echo "\"mount -t cgroup $para_o $something $target\" (expected: success)"
- else
- echo "\"mount -t cgroup $para_o $something $target\" (expected: fail)"
- fi
- fi
- mount -t cgroup $para_o $something $target
- do_exit $exit_here $expected $?;
-}
-
-do_umount()
-{
- if [ "$#" -ne "3" ]; then
- echo "ERROR: umount failed,your parameter is wrong..Exiting test"
- exit -1
- fi
-
- exit_here=$1
- expected=$2
- target=$3
-
- if [ $no_debug -ne 1 ]; then
- if [ $expected -ge 1 ]; then
- echo "\"umount $target\" (expected: success)"
- else
- echo "\"umount $target\" (expected: fail)"
- fi
- fi
-
- umount $target
- do_exit $exit_here $expected $?;
-}
-
-do_mv()
-{
- if [ "$#" -ne "4" ]; then
- echo "ERROR: mv failed,your parameter is wrong... Exiting test"
- exit -1
- fi
-
- exit_here=$1
- expected=$2
- source=$3
- target=$4
-
- if [ $no_debug -ne 1 ]; then
- if [ $expected -ge 1 ]; then
- echo "\"mv $source $target\" (expected: success)"
- else
- echo "\"mv $source $target\" (expected: fail)"
- fi
- fi
-
- mv $source $target
- do_exit $exit_here $expected $?;
-}
-
-do_kill()
-{
- if [ "$#" -ne "4" ]; then
- echo "ERROR: kill failed,your parameter is wrong... Exiting test"
- exit -1
- fi
-
- exit_here=$1
- expected=$2
- signo=$3
- pid=$4
-
- if ! [ -e /proc/$pid/ ];then
- return
- fi
-
- if [ $no_debug -ne 1 ]; then
- if [ $expected -ge 1 ]; then
- echo "\"kill -$signo $pid\" (expected: success)"
- else
- echo "\"kill -$signo $pid\" (expected: fail)"
- fi
- fi
-
- kill -s $signo $pid
- do_exit $exit_here $expected $?;
-}
-
-setup()
-{
- mount_point=$(get_mount_point)
-
- if [ "$mount_point" == "" ]; then
- mounted=0
- mount_point=/dev/cgroup
- fi
-
- if [ $mounted -ne 1 ]; then
- do_mkdir 1 1 $mount_point
- mount_cgroup
- fi
-
- if [ -e $LTPROOT/testcases/bin/cgroup_fj_release_agent ]; then
- cp -f $LTPROOT/testcases/bin/cgroup_fj_release_agent /sbin
- chmod a+x /sbin/cgroup_fj_release_agent
- cp -f $LTPROOT/testcases/bin/cgroup_fj_release_agent /root
- chmod a+x /root/cgroup_fj_release_agent
- else
- echo "ERROR: $LTPROOT/testcases/bin/cgroup_fj_release_agent doesn't exist... Exiting test"
- exit -1
- fi
-
- if [ $release_agent_para -eq 8 ] || [ $release_agent_echo -eq 7 ]; then
- chmod a-x /sbin/cgroup_fj_release_agent
- fi
-}
-
-cleanup()
-{
- if [ $no_debug -ne 1 ]; then
- echo "INFO: we now cleanup ..."
- fi
-
- export LANG=en_US.UTF-8
-
- rm -f /sbin/cgroup_fj_release_agent 2>/dev/null
- rm -f /root/cgroup_fj_release_agent 2>/dev/null
-
- killall -9 cgroup_fj_proc 1>/dev/null 2>&1;
-
- if [ -e $mount_point/ltp_subgroup_1 ]; then
- cat $mount_point/ltp_subgroup_1/tasks > $TMPFILE
- nlines=`cat $TMPFILE | wc -l`
- for i in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$i""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- do_echo 0 1 "$cur_pid" $mount_point/tasks
- fi
- done
- do_rmdir 0 1 $mount_point/ltp_subgroup_*
- fi
-
- if [ -e $TMPFILE ]; then
- rm -f $TMPFILE 2>/dev/null
- fi
-
- if [ $mounted -ne 1 ] ; then
- mount_str="`mount -l | grep $mount_point`"
- if [ "$mount_str" != "" ]; then
- do_umount 0 1 $mount_point
- fi
- if [ -e $mount_point ]; then
- echo "about to rm $mount_point"
- do_rmdir 0 1 $mount_point
- fi
- fi
-}
-
-reclaim_foundling()
-{
- if ! [ -e $mount_point/ltp_subgroup_1 ]; then
- return
- fi
- foundlings=0
- cat `find $mount_point/ltp_subgroup_* -name "tasks"` > $TMPFILE
- nlines=`cat "$TMPFILE" | wc -l`
- for k in `seq 1 $nlines`
- do
- cur_pid=`sed -n "$k""p" $TMPFILE`
- if [ -e /proc/$cur_pid/ ];then
- echo "ERROR: pid $cur_pid reclaimed"
- do_echo 0 1 "$cur_pid" "$mount_point/tasks"
- : $((foundlings += 1))
- fi
- done
-
- if [ $foundlings -ne 0 ]; then
- echo "ERROR: some processes lost in subgroups's tasks, now they are reclaimed."
- fi
-}
-
-mkdir_subgroup()
-{
- if ! [ -e $mount_point ]; then
- echo "ERROR: $mount_point doesn't exist... Exiting test"
- exit -1;
- fi
-
- do_mkdir 1 1 $mount_point/ltp_subgroup_1
-}
-
-mount_cgroup ()
-{
- expected=1
- PARAMETER_O="";
-
- if [ "$subsystem" == "abc" ]; then
- expected=0
- fi
- if [ "$subsystem" != "" ]; then
- PARAMETER_O="$subsystem"
- fi
- if [ "$release_agent_para_str" != "" ]; then
- if [ "$PARAMETER_O" != "" ]; then
- PARAMETER_O="$PARAMETER_O"",release_agent=""$release_agent_para_str"
- else
- PARAMETER_O="release_agent=""$release_agent_para_str"
- fi
- fi
- if [ "$remount_use_str" != "" ]; then
- if [ "$PARAMETER_O" != "" ]; then
- do_mount 1 1 "-o$PARAMETER_O" $mount_point
- PARAMETER_O="$PARAMETER_O"",""$remount_use_str"
- else
- do_mount 1 1 "" $mount_point
- PARAMETER_O="$remount_use_str"
- fi
- sleep 1
- fi
-
- if [ "$PARAMETER_O" != "" ]; then
- PARAMETER_O="-o""$PARAMETER_O"
- fi
-
- do_mount 1 $expected "$PARAMETER_O" $mount_point
-}
-
-check_para()
-{
- get_subsystem;
- ret1=$?
- get_remount_use;
- ret2=$?
- get_release_agent_para;
- ret4=$?
- get_notify_on_release;
- ret5=$?
- get_release_agent;
- ret6=$?
-
- if [ $ret1 -ne 0 ] || [ $ret2 -ne 0 ] || [ $ret4 -ne 0 ] || [ $ret5 -ne 0 ] || [ $ret6 -ne 0 ]
- then
- echo "ERROR: Wrong input parameters..Exiting test"
- return -1
- fi
-
- return 0
-}
diff --git a/testcases/kernel/controllers/cgroup_fj/run_cgroup_test_fj.sh b/testcases/kernel/controllers/cgroup_fj/run_cgroup_test_fj.sh
deleted file mode 100755
index 93e505b8f..000000000
--- a/testcases/kernel/controllers/cgroup_fj/run_cgroup_test_fj.sh
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/bin/bash
-
-################################################################################
-## ##
-## Copyright (c) 2009 FUJITSU LIMITED ##
-## ##
-## This program is free software; you can redistribute it and#or modify ##
-## it under the terms of the GNU General Public License as published by ##
-## the Free Software Foundation; either version 2 of the License, or ##
-## (at your option) any later version. ##
-## ##
-## This program is distributed in the hope that it will be useful, but ##
-## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
-## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
-## for more details. ##
-## ##
-## You should have received a copy of the GNU General Public License ##
-## along with this program; if not, write to the Free Software ##
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
-## ##
-## Author: Shi Weihua <shiwh@cn.fujitsu.com> ##
-## ##
-################################################################################
-
-cnt=1
-for arg; do
- if [ $cnt -gt 1 ]; then
- NAME+="_"
- NAME+=$arg
- fi
- cnt=$(( $cnt + 1 ))
-done
-
-PREFIX="cgroup_fj_"
-
-export TCID=$PREFIX$1$NAME
-export TST_TOTAL=1
-export TST_COUNT=1
-
-export TESTROOT=`pwd`
-export TMPFILE=$TESTROOT/tmp_tasks
-export CASENO1=0
-export CASENO2=0
-
-if [ ! -f /proc/cgroups ]; then
- tst_brkm TCONF ignored "Kernel does not support for control groups; skipping testcases";
- exit 32
-elif [ "x$(id -ru)" != x0 ]; then
- tst_brkm TCONF ignored "Test must be run as root"
- exit 32
-fi
-
-CPUSET=`grep -w cpuset /proc/cgroups | cut -f1`;
-DEBUG=`grep -w debug /proc/cgroups | cut -f1`;
-NS=`grep -w ns /proc/cgroups | cut -f1`;
-CPU=`grep -w cpu /proc/cgroups | cut -f1`;
-CPUACCT=`grep -w cpuacct /proc/cgroups | cut -f1`;
-MEMORY=`grep -w memory /proc/cgroups | cut -f1`;
-FREEZER=`grep -w freezer /proc/cgroups | cut -f1`
-DEVICES=`grep -w devices /proc/cgroups | cut -f1`
-SUBSYSCOMPILED="";
-if [ "$CPUSET" = "cpuset" ]; then
- SYBSYSCOMPILED="cpuset,"
-fi
-if [ "$DEBUG" = "debug" ]; then
- SYBSYSCOMPILED="$SYBSYSCOMPILED debug,"
-fi
-if [ "$NS" = "ns" ]; then
- SYBSYSCOMPILED="$SYBSYSCOMPILED ns,"
-fi
-if [ "$CPU" = "cpu" ]; then
- SYBSYSCOMPILED="$SYBSYSCOMPILED cpu,"
-fi
-if [ "$CPUACCT" = "cpuacct" ]; then
- SYBSYSCOMPILED="$SYBSYSCOMPILED cpuacct,"
-fi
-if [ "$MEMORY" = "memory" ]; then
- SYBSYSCOMPILED="$SYBSYSCOMPILED memory,"
-fi
-if [ "$FREEZER" = "freezer" ]; then
- SYBSYSCOMPILED="$SYBSYSCOMPILED freezer,"
-fi
-if [ "$DEVICES" = "devices" ]; then
- SYBSYSCOMPILED="$SYBSYSCOMPILED devices,"
-fi
-if [ "$SYBSYSCOMPILED" = "" ];then # Warning and exit if all cgroup subsystem are not compiled
- echo "CONTROLLERS TESTCASES: WARNING";
- echo "Kernel does not support for any cgroup subsystem";
- echo "Skipping all controllers testcases....";
- exit 32;
-fi
-
-CASETYPE=$1
-shift
-CASECMD=$@
-
-case $CASETYPE in
-"function" )
- : $(( CASENO1 += 1 ))
- export CASENO1=$CASENO1
- cgroup_fj_function.sh $CASECMD
- ;;
-"function2" )
- : $(( CASENO1 += 1 ))
- export CASENO1=$CASENO1
- cgroup_fj_function2.sh $CASECMD
- ;;
-"stress" )
- : $(( CASENO2 += 1 ))
- export CASENO2=$CASENO2
- cgroup_fj_stress.sh $CASECMD
- ;;
-esac
-
-ret=$?
-if [ $ret -eq 0 ]; then
- tst_resm TPASS "case$i($CASETYPE$CASECMD) PASS"
-elif [ $ret -ne 32 ]; then
- tst_resm TFAIL "case$i($CASETYPE $CASECMD) FAIL"
-fi
-
-exit $ret;