Skip to content

Commit 5b0377f

Browse files
author
Changwoo Min
committed
scripts: Add a script to set up cgroups for basic testing of cpu.max.
Signed-off-by: Changwoo Min <[email protected]>
1 parent 1a7a3d9 commit 5b0377f

File tree

1 file changed

+319
-0
lines changed

1 file changed

+319
-0
lines changed

scripts/cg_setup_test.sh

Lines changed: 319 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,319 @@
1+
#!/usr/bin/bash
2+
3+
echo "+cpu" > /sys/fs/cgroup/cgroup.subtree_control
4+
5+
# ==========================================================
6+
# Config 01: a single level, half CPU
7+
mkdir -p /sys/fs/cgroup/test01_l1
8+
9+
echo "+cpu" > /sys/fs/cgroup/test01_l1/cgroup.subtree_control
10+
11+
echo "50000 100000" > /sys/fs/cgroup/test01_l1/cpu.max
12+
13+
# -------------
14+
# Test 01-01
15+
# echo $$ > /sys/fs/cgroup/test01_l1/cgroup.procs
16+
17+
# ==========================================================
18+
# Config 02: a single level, two CPUs
19+
mkdir -p /sys/fs/cgroup/test02_l1
20+
21+
echo "+cpu" > /sys/fs/cgroup/test02_l1/cgroup.subtree_control
22+
23+
echo "200000 100000 " > /sys/fs/cgroup/test02_l1/cpu.max
24+
25+
# -------------
26+
# Test 02-01
27+
# echo $$ > /sys/fs/cgroup/test02_l1/cgroup.procs
28+
29+
# ==========================================================
30+
# Config 03: two-level, half CPU
31+
mkdir -p /sys/fs/cgroup/test03_l1
32+
mkdir -p /sys/fs/cgroup/test03_l1/l2-a
33+
mkdir -p /sys/fs/cgroup/test03_l1/l2-b
34+
mkdir -p /sys/fs/cgroup/test03_l1/l2-c
35+
36+
echo "+cpu" > /sys/fs/cgroup/test03_l1/cgroup.subtree_control
37+
echo "+cpu" > /sys/fs/cgroup/test03_l1/l2-a/cgroup.subtree_control
38+
echo "+cpu" > /sys/fs/cgroup/test03_l1/l2-b/cgroup.subtree_control
39+
echo "+cpu" > /sys/fs/cgroup/test03_l1/l2-c/cgroup.subtree_control
40+
41+
echo "50000 100000" > /sys/fs/cgroup/test03_l1/cpu.max
42+
echo "50000 100000" > /sys/fs/cgroup/test03_l1/l2-a/cpu.max
43+
echo "50000 100000" > /sys/fs/cgroup/test03_l1/l2-b/cpu.max
44+
echo "50000 100000" > /sys/fs/cgroup/test03_l1/l2-c/cpu.max
45+
46+
# -------------
47+
# Test 03-01: running on a single cgroup
48+
# echo $$ > /sys/fs/cgroup/test03_l1/l2-a/cgroup.procs
49+
50+
# -------------
51+
# Test 03-02 (l1, l2): running on two cgroups
52+
# echo $$ > /sys/fs/cgroup/test03_l1/l2-a/cgroup.procs
53+
# echo $$ > /sys/fs/cgroup/test03_l1/l2-b/cgroup.procs
54+
55+
# -------------
56+
# Test 03-03: running on three cgroups
57+
# echo $$ > /sys/fs/cgroup/test03_l1/l2-a/cgroup.procs
58+
# echo $$ > /sys/fs/cgroup/test03_l1/l2-b/cgroup.procs
59+
# echo $$ > /sys/fs/cgroup/test03_l1/l2-c/cgroup.procs
60+
61+
62+
# ==========================================================
63+
# Config 04: two-level, two CPUs
64+
mkdir -p /sys/fs/cgroup/test04_l1
65+
mkdir -p /sys/fs/cgroup/test04_l1/l2-a
66+
mkdir -p /sys/fs/cgroup/test04_l1/l2-b
67+
68+
echo "+cpu" > /sys/fs/cgroup/test04_l1/cgroup.subtree_control
69+
echo "+cpu" > /sys/fs/cgroup/test04_l1/l2-a/cgroup.subtree_control
70+
echo "+cpu" > /sys/fs/cgroup/test04_l1/l2-b/cgroup.subtree_control
71+
72+
echo "200000 100000" > /sys/fs/cgroup/test04_l1/cpu.max
73+
echo "200000 100000" > /sys/fs/cgroup/test04_l1/l2-a/cpu.max
74+
echo "200000 100000" > /sys/fs/cgroup/test04_l1/l2-b/cpu.max
75+
76+
# -------------
77+
# Test 04-01: running on a single cgroup
78+
# echo $$ > /sys/fs/cgroup/test04_l1/l2-a/cgroup.procs
79+
80+
# -------------
81+
# Test 04-02: running on two cgroups
82+
# echo $$ > /sys/fs/cgroup/test04_l1/l2-a/cgroup.procs
83+
# echo $$ > /sys/fs/cgroup/test04_l1/l2-b/cgroup.procs
84+
85+
86+
# ==========================================================
87+
# Config 05: three-level, half CPU
88+
mkdir -p /sys/fs/cgroup/test05_l1
89+
mkdir -p /sys/fs/cgroup/test05_l1/l2-a
90+
mkdir -p /sys/fs/cgroup/test05_l1/l2-a/l3-x
91+
mkdir -p /sys/fs/cgroup/test05_l1/l2-a/l3-y
92+
mkdir -p /sys/fs/cgroup/test05_l1/l2-b
93+
94+
echo "+cpu" > /sys/fs/cgroup/test05_l1/cgroup.subtree_control
95+
echo "+cpu" > /sys/fs/cgroup/test05_l1/l2-a/cgroup.subtree_control
96+
echo "+cpu" > /sys/fs/cgroup/test05_l1/l2-a/l3-x/cgroup.subtree_control
97+
echo "+cpu" > /sys/fs/cgroup/test05_l1/l2-a/l3-y/cgroup.subtree_control
98+
echo "+cpu" > /sys/fs/cgroup/test05_l1/l2-b/cgroup.subtree_control
99+
100+
echo "50000 100000" > /sys/fs/cgroup/test05_l1/cpu.max
101+
echo "50000 100000" > /sys/fs/cgroup/test05_l1/l2-a/cpu.max
102+
echo "50000 100000" > /sys/fs/cgroup/test05_l1/l2-a/l3-x/cpu.max
103+
echo "50000 100000" > /sys/fs/cgroup/test05_l1/l2-a/l3-y/cpu.max
104+
echo "50000 100000" > /sys/fs/cgroup/test05_l1/l2-b/cpu.max
105+
106+
# -------------
107+
# Test 05-01: running on a single cgroup at level three
108+
# echo $$ > /sys/fs/cgroup/test05_l1/l2-a/l3-x/cgroup.procs
109+
110+
# -------------
111+
# Test 05-02: running on a single cgroup at level two
112+
# echo $$ > /sys/fs/cgroup/test05_l1/l2-b/cgroup.procs
113+
114+
# -------------
115+
# Test 05-03: running on two cgroups
116+
# echo $$ > /sys/fs/cgroup/test05_l1/l2-a/l3-x/cgroup.procs
117+
# echo $$ > /sys/fs/cgroup/test05_l1/l2-b/cgroup.procs
118+
119+
# ==========================================================
120+
# Config 06: three-level, two CPUs
121+
mkdir -p /sys/fs/cgroup/test06_l1
122+
mkdir -p /sys/fs/cgroup/test06_l1/l2-a
123+
mkdir -p /sys/fs/cgroup/test06_l1/l2-a/l3-x
124+
mkdir -p /sys/fs/cgroup/test06_l1/l2-a/l3-y
125+
mkdir -p /sys/fs/cgroup/test06_l1/l2-b
126+
127+
echo "+cpu" > /sys/fs/cgroup/test06_l1/cgroup.subtree_control
128+
echo "+cpu" > /sys/fs/cgroup/test06_l1/l2-a/cgroup.subtree_control
129+
echo "+cpu" > /sys/fs/cgroup/test06_l1/l2-a/l3-x/cgroup.subtree_control
130+
echo "+cpu" > /sys/fs/cgroup/test06_l1/l2-a/l3-y/cgroup.subtree_control
131+
echo "+cpu" > /sys/fs/cgroup/test06_l1/l2-b/cgroup.subtree_control
132+
133+
echo "200000 100000" > /sys/fs/cgroup/test06_l1/cpu.max
134+
echo "200000 100000" > /sys/fs/cgroup/test06_l1/l2-a/cpu.max
135+
echo "200000 100000" > /sys/fs/cgroup/test06_l1/l2-a/l3-x/cpu.max
136+
echo "200000 100000" > /sys/fs/cgroup/test06_l1/l2-a/l3-y/cpu.max
137+
echo "200000 100000" > /sys/fs/cgroup/test06_l1/l2-b/cpu.max
138+
139+
# -------------
140+
# Test 06-01: running on a single cgroup at level three
141+
# echo $$ > /sys/fs/cgroup/test06_l1/l2-a/l3-x/cgroup.procs
142+
143+
# -------------
144+
# Test 06-02: running on a single cgroup at level two
145+
# echo $$ > /sys/fs/cgroup/test06_l1/l2-b/cgroup.procs
146+
147+
# -------------
148+
# Test 06-03: running on two cgroups
149+
# echo $$ > /sys/fs/cgroup/test06_l1/l2-a/l3-x/cgroup.procs
150+
# echo $$ > /sys/fs/cgroup/test06_l1/l2-b/cgroup.procs
151+
152+
# ==========================================================
153+
# Config 07: deep hierarchy (level 8), half CPU
154+
mkdir -p /sys/fs/cgroup/test07_l1
155+
mkdir -p /sys/fs/cgroup/test07_l1/l2-a
156+
mkdir -p /sys/fs/cgroup/test07_l1/l2-a/l3-a
157+
mkdir -p /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a
158+
mkdir -p /sys/fs/cgroup/test07_l1/l# - 8 vs. 8: 70-150% not 200%
159+
2-a/l3-a/l4-a/l5-a
160+
mkdir -p /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a
161+
mkdir -p /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a
162+
mkdir -p /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/l8-a
163+
164+
echo "+cpu" > /sys/fs/cgroup/test07_l1/cgroup.subtree_control
165+
echo "+cpu" > /sys/fs/cgroup/test07_l1/l2-a/cgroup.subtree_control
166+
echo "+cpu" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/cgroup.subtree_control
167+
echo "+cpu" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/cgroup.subtree_control
168+
echo "+cpu" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/cgroup.subtree_control
169+
echo "+cpu" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/cgroup.subtree_control
170+
echo "+cpu" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/cgroup.subtree_control
171+
echo "+cpu" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/l8-a/cgroup.subtree_control
172+
173+
echo "50000 100000" > /sys/fs/cgroup/test07_l1/cpu.max
174+
echo "50000 100000" > /sys/fs/cgroup/test07_l1/l2-a/cpu.max
175+
echo "50000 100000" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/cpu.max
176+
echo "50000 100000" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/cpu.max
177+
echo "50000 100000" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/cpu.max
178+
echo "50000 100000" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/cpu.max
179+
echo "50000 100000" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/cpu.max
180+
echo "50000 100000" > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/l8-a/cpu.max
181+
182+
# -------------
183+
# Test 07-01: running on a single cgroup at the leaf level
184+
# echo $$ > /sys/fs/cgroup/test07_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/l8-a/cgroup.procs
185+
186+
# ==========================================================
187+
# Config 08: deep hierarchy (level 8), 128 CPUs
188+
mkdir -p /sys/fs/cgroup/test08_l1
189+
mkdir -p /sys/fs/cgroup/test08_l1/l2-a
190+
mkdir -p /sys/fs/cgroup/test08_l1/l2-a/l3-a
191+
mkdir -p /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a
192+
mkdir -p /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a
193+
mkdir -p /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a
194+
mkdir -p /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a
195+
mkdir -p /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/l8-a
196+
197+
echo "+cpu" > /sys/fs/cgroup/test08_l1/cgroup.subtree_control
198+
echo "+cpu" > /sys/fs/cgroup/test08_l1/l2-a/cgroup.subtree_control
199+
echo "+cpu" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/cgroup.subtree_control
200+
echo "+cpu" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/cgroup.subtree_control
201+
echo "+cpu" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/cgroup.subtree_control
202+
echo "+cpu" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/cgroup.subtree_control
203+
echo "+cpu" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/cgroup.subtree_control
204+
echo "+cpu" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/l8-a/cgroup.subtree_control
205+
206+
echo "12800000 100000" > /sys/fs/cgroup/test08_l1/cpu.max
207+
echo "12800000 100000" > /sys/fs/cgroup/test08_l1/l2-a/cpu.max
208+
echo "12800000 100000" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/cpu.max
209+
echo "12800000 100000" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/cpu.max
210+
echo "12800000 100000" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/cpu.max
211+
echo "12800000 100000" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/cpu.max
212+
echo "12800000 100000" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/cpu.max
213+
echo "12800000 100000" > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/l8-a/cpu.max
214+
215+
# -------------
216+
# Test 08-01: running on a single cgroup at the leaf level
217+
# echo $$ > /sys/fs/cgroup/test08_l1/l2-a/l3-a/l4-a/l5-a/l6-a/l7-a/l8-a/cgroup.procs
218+
219+
# ==========================================================
220+
# Config 09: a single level, half CPU, long period
221+
mkdir -p /sys/fs/cgroup/test09_l1
222+
223+
echo "+cpu" > /sys/fs/cgroup/test09_l1/cgroup.subtree_control
224+
225+
echo "500000 1000000" > /sys/fs/cgroup/test09_l1/cpu.max
226+
227+
# -------------
228+
# Test 09-01
229+
# echo $$ > /sys/fs/cgroup/test09_l1/cgroup.procs
230+
231+
# ==========================================================
232+
# Config 10: a single level, two CPUs, long period
233+
mkdir -p /sys/fs/cgroup/test10_l1
234+
235+
echo "+cpu" > /sys/fs/cgroup/test10_l1/cgroup.subtree_control
236+
237+
echo "2000000 1000000 " > /sys/fs/cgroup/test10_l1/cpu.max
238+
239+
# -------------
240+
# Test 10-01
241+
# echo $$ > /sys/fs/cgroup/test10_l1/cgroup.procs
242+
243+
# ==========================================================
244+
# Config 11: a single level, half CPU, short period
245+
mkdir -p /sys/fs/cgroup/test11_l1
246+
247+
echo "+cpu" > /sys/fs/cgroup/test11_l1/cgroup.subtree_control
248+
249+
echo "5000 10000" > /sys/fs/cgroup/test11_l1/cpu.max
250+
251+
# -------------
252+
# Test 11-01
253+
# echo $$ > /sys/fs/cgroup/test11_l1/cgroup.procs
254+
255+
# ==========================================================
256+
# Config 12: a single level, two CPUs, short period
257+
mkdir -p /sys/fs/cgroup/test12_l1
258+
259+
echo "+cpu" > /sys/fs/cgroup/test12_l1/cgroup.subtree_control
260+
261+
echo "20000 10000 " > /sys/fs/cgroup/test12_l1/cpu.max
262+
263+
# -------------
264+
# Test 12-01
265+
# echo $$ > /sys/fs/cgroup/test12_l1/cgroup.procs
266+
267+
# ==========================================================
268+
# Config 13: a single level, 128 CPU
269+
mkdir -p /sys/fs/cgroup/test13_l1
270+
271+
echo "+cpu" > /sys/fs/cgroup/test13_l1/cgroup.subtree_control
272+
273+
echo "12800000 100000" > /sys/fs/cgroup/test13_l1/cpu.max
274+
275+
# -------------
276+
# Test 13-01
277+
# echo $$ > /sys/fs/cgroup/test13_l1/cgroup.procs
278+
279+
# ==========================================================
280+
# Config 14: two-level, 128 CPU
281+
mkdir -p /sys/fs/cgroup/test14_l1
282+
mkdir -p /sys/fs/cgroup/test14_l1/l2-a
283+
mkdir -p /sys/fs/cgroup/test14_l1/l2-b
284+
285+
echo "+cpu" > /sys/fs/cgroup/test14_l1/cgroup.subtree_control
286+
echo "+cpu" > /sys/fs/cgroup/test14_l1/l2-a/cgroup.subtree_control
287+
echo "+cpu" > /sys/fs/cgroup/test14_l1/l2-b/cgroup.subtree_control
288+
289+
echo "12800000 100000" > /sys/fs/cgroup/test14_l1/cpu.max
290+
echo "12800000 100000" > /sys/fs/cgroup/test14_l1/l2-a/cpu.max
291+
echo "12800000 100000" > /sys/fs/cgroup/test14_l1/l2-b/cpu.max
292+
293+
# -------------
294+
# Test 14-01: running on a single cgroup
295+
# echo $$ > /sys/fs/cgroup/test14_l1/l2-a/cgroup.procs
296+
297+
# -------------
298+
# Test 14-02: running on two cgroups
299+
# echo $$ > /sys/fs/cgroup/test14_l1/l2-a/cgroup.procs
300+
# echo $$ > /sys/fs/cgroup/test14_l1/l2-b/cgroup.procs
301+
302+
# ==========================================================
303+
# Config 15: two-level, 1 CPU : 4 CPUs
304+
mkdir -p /sys/fs/cgroup/test15_l1
305+
mkdir -p /sys/fs/cgroup/test15_l1/l2-a
306+
mkdir -p /sys/fs/cgroup/test15_l1/l2-b
307+
308+
echo "+cpu" > /sys/fs/cgroup/test15_l1/cgroup.subtree_control
309+
echo "+cpu" > /sys/fs/cgroup/test15_l1/l2-a/cgroup.subtree_control
310+
echo "+cpu" > /sys/fs/cgroup/test15_l1/l2-b/cgroup.subtree_control
311+
312+
echo "500000 100000" > /sys/fs/cgroup/test15_l1/cpu.max
313+
echo "100000 100000" > /sys/fs/cgroup/test15_l1/l2-a/cpu.max
314+
echo "400000 100000" > /sys/fs/cgroup/test15_l1/l2-b/cpu.max
315+
316+
# -------------
317+
# Test 15-01: running on two cgroups
318+
# echo $$ > /sys/fs/cgroup/test15_l1/l2-a/cgroup.procs
319+
# echo $$ > /sys/fs/cgroup/test15_l1/l2-b/cgroup.procs

0 commit comments

Comments
 (0)