Lines Matching +full:0 +full:- +full:3

2 # SPDX-License-Identifier: GPL-2.0
16 [[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"
20 WAIT_INOTIFY=$(cd $(dirname $0); pwd)/wait_inotify
23 CGROUP2=$(mount -t cgroup2 | head -1 | awk -e '{print $3}')
24 [[ -n "$CGROUP2" ]] || skip_test "Cgroup v2 mount point not found!"
28 NR_CPUS=$(lscpu | grep "^CPU(s):" | sed -e "s/.*:[[:space:]]*//")
29 [[ $NR_CPUS -lt 8 ]] && skip_test "Test needs at least 8 cpus available!"
33 VERBOSE=0
36 while [[ "$1" = -* ]]
39 -v) ((VERBOSE++))
41 [[ $DELAY_FACTOR -eq 1 ]] &&
44 -d) DELAY_FACTOR=$2
47 *) echo "Usage: $PROG [-v] [-d <delay-factor>"
54 # Set sched verbose flag if available when "-v" option is specified
55 if [[ $VERBOSE -gt 0 && -d /sys/kernel/debug/sched ]]
70 [[ -d test ]] || mkdir test
71 echo 0-6 > test/cpuset.cpus
73 cat test/cpuset.cpus.partition | grep -q invalid
77 [[ $RESULT -eq 0 ]] && skip_test "Child cgroups are using cpuset!"
85 [[ -n "$SCHED_DEBUG" ]] &&
93 LOOP=0
94 while [[ $LOOP -lt $DELAY_FACTOR ]]
99 return 0
115 [[ $? -eq 0 ]] || exit 1
140 echo $ERRMSG | grep -q "$OUTSTR"
141 [[ $? -ne 0 ]] && {
154 # root -- A1 -- A2 -- A3
155 # +- B1
157 # P<v> = set cpus.partition (0:member, 1:root, 2:isolated)
158 # C<l> = add cpu-list to cpuset.cpus
159 # X<l> = add cpu-list to cpuset.cpus.exclusive
164 SETUP_A123_PARTITIONS="C1-3:P1:S+ C2-3:P1:S+ C3:P1"
166 # old-A1 old-A2 old-A3 old-B1 new-A1 new-A2 new-A3 new-B1 fail ECPUs Pstate ISOLCPUS
167 # ------ ------ ------ ------ ------ ------ ------ ------ ---- ----- ------ --------
168 " C0-1 . . C2-3 S+ C4-5 . . 0 A2:0-1"
169 " C0-1 . . C2-3 P1 . . . 0 "
170 " C0-1 . . C2-3 P1:S+ C0-1:P1 . . 0 "
171 " C0-1 . . C2-3 P1:S+ C1:P1 . . 0 "
172 " C0-1:S+ . . C2-3 . . . P1 0 "
173 " C0-1:P1 . . C2-3 S+ C1 . . 0 "
174 " C0-1:P1 . . C2-3 S+ C1:P1 . . 0 "
175 " C0-1:P1 . . C2-3 S+ C1:P1 . P1 0 "
176 " C0-1:P1 . . C2-3 C4-5 . . . 0 A1:4-5"
177 " C0-1:P1 . . C2-3 S+:C4-5 . . . 0 A1:4-5"
178 " C0-1 . . C2-3:P1 . . . C2 0 "
179 " C0-1 . . C2-3:P1 . . . C4-5 0 B1:4-5"
180 "C0-3:P1:S+ C2-3:P1 . . . . . . 0 A1:0-1,A2:2-3"
181 "C0-3:P1:S+ C2-3:P1 . . C1-3 . . . 0 A1:1,A2:2-3"
182 "C2-3:P1:S+ C3:P1 . . C3 . . . 0 A1:,A2:3 A1:P1,A2:P1"
183 "C2-3:P1:S+ C3:P1 . . C3 P0 . . 0 A1:3,A2:3 A1:P1,A2:P0"
184 "C2-3:P1:S+ C2:P1 . . C2-4 . . . 0 A1:3-4,A2:2"
185 "C2-3:P1:S+ C3:P1 . . C3 . . C0-2 0 A1:,B1:0-2 A1:P1,A2:P1"
186 "$SETUP_A123_PARTITIONS . C2-3 . . . 0 A1:,A2:2,A3:3 A1:P1,A2:P1,A3:P1"
189 " C0-1 . . C2-3 S+ C4-5 . O2=0 0 A1:0-1,B1:3"
190 "C0-3:P1:S+ C2-3:P1 . . O2=0 . . . 0 A1:0-1,A2:3"
191 "C0-3:P1:S+ C2-3:P1 . . O2=0 O2=1 . . 0 A1:0-1,A2:2-3"
192 "C0-3:P1:S+ C2-3:P1 . . O1=0 . . . 0 A1:0,A2:2-3"
193 "C0-3:P1:S+ C2-3:P1 . . O1=0 O1=1 . . 0 A1:0-1,A2:2-3"
194 "C2-3:P1:S+ C3:P1 . . O3=0 O3=1 . . 0 A1:2,A2:3 A1:P1,A2:P1"
195 "C2-3:P1:S+ C3:P2 . . O3=0 O3=1 . . 0 A1:2,A2:3 A1:P1,A2:P2"
196 "C2-3:P1:S+ C3:P1 . . O2=0 O2=1 . . 0 A1:2,A2:3 A1:P1,A2:P1"
197 "C2-3:P1:S+ C3:P2 . . O2=0 O2=1 . . 0 A1:2,A2:3 A1:P1,A2:P2"
198 "C2-3:P1:S+ C3:P1 . . O2=0 . . . 0 A1:,A2:3 A1:P1,A2:P1"
199 "C2-3:P1:S+ C3:P1 . . O3=0 . . . 0 A1:2,A2: A1:P1,A2:P1"
200 "C2-3:P1:S+ C3:P1 . . T:O2=0 . . . 0 A1:3,A2:3 A1:P1,A2:P-1"
201 "C2-3:P1:S+ C3:P1 . . . T:O3=0 . . 0 A1:2,A2:2 A1:P1,A2:P-1"
202 "$SETUP_A123_PARTITIONS . O1=0 . . . 0 A1:,A2:2,A3:3 A1:P1,A2:P1,A3:P1"
203 "$SETUP_A123_PARTITIONS . O2=0 . . . 0 A1:1,A2:,A3:3 A1:P1,A2:P1,A3:P1"
204 "$SETUP_A123_PARTITIONS . O3=0 . . . 0 A1:1,A2:2,A3: A1:P1,A2:P1,A3:P1"
205 …"$SETUP_A123_PARTITIONS . T:O1=0 . . . 0 A1:2-3,A2:2-3,A3:3 A1:P1,A2:P-1,A3:…
206 "$SETUP_A123_PARTITIONS . . T:O2=0 . . 0 A1:1,A2:3,A3:3 A1:P1,A2:P1,A3:P-1"
207 "$SETUP_A123_PARTITIONS . . . T:O3=0 . 0 A1:1,A2:2,A3:2 A1:P1,A2:P1,A3:P-1"
208 "$SETUP_A123_PARTITIONS . T:O1=0 O1=1 . . 0 A1:1,A2:2,A3:3 A1:P1,A2:P1,A3:P1"
209 "$SETUP_A123_PARTITIONS . . T:O2=0 O2=1 . 0 A1:1,A2:2,A3:3 A1:P1,A2:P1,A3:P1"
210 "$SETUP_A123_PARTITIONS . . . T:O3=0 O3=1 0 A1:1,A2:2,A3:3 A1:P1,A2:P1,A3:P1"
211 "$SETUP_A123_PARTITIONS . T:O1=0 O2=0 O1=1 . 0 A1:1,A2:,A3:3 A1:P1,A2:P1,A3:P1"
212 …"$SETUP_A123_PARTITIONS . T:O1=0 O2=0 O2=1 . 0 A1:2-3,A2:2-3,A3:3 A1:P1,A2:P-1,A3:…
214 # old-A1 old-A2 old-A3 old-B1 new-A1 new-A2 new-A3 new-B1 fail ECPUs Pstate ISOLCPUS
215 # ------ ------ ------ ------ ------ ------ ------ ------ ---- ----- ------ --------
219 " C0-3:S+ C1-3:S+ C2-3 . X2-3 . . . 0 A1:0-3,A2:1-3,A3:2-3,XA1:2-3"
220 …" C0-3:S+ C1-3:S+ C2-3 . X2-3 X2-3:P2 . . 0 A1:0-1,A2:2-3,A3:2-3 A1:P0,A2:P2 2-…
221 " C0-3:S+ C1-3:S+ C2-3 . X2-3 X3:P2 . . 0 A1:0-2,A2:3,A3:3 A1:P0,A2:P2 3"
222 " C0-3:S+ C1-3:S+ C2-3 . X2-3 X2-3 X2-3:P2 . 0 A1:0-1,A2:1,A3:2-3 A1:P0,A3:P2 2-3"
223 " C0-3:S+ C1-3:S+ C2-3 . X2-3 X2-3 X2-3:P2:C3 . 0 A1:0-2,A2:1-2,A3:3 A1:P0,A3:P2 3"
224 …" C0-3:S+ C1-3:S+ C2-3 C2-3 . . . P2 0 A1:0-3,A2:1-3,A3:2-3,B1:2-3 A1:P0,A…
225 " C0-3:S+ C1-3:S+ C2-3 C4-5 . . . P2 0 B1:4-5 B1:P2 4-5"
226 " C0-3:S+ C1-3:S+ C2-3 C4 X2-3 X2-3 X2-3:P2 P2 0 A3:2-3,B1:4 A3:P2,B1:P2 2-4"
227 " C0-3:S+ C1-3:S+ C2-3 C4 X2-3 X2-3 X2-3:P2:C1-3 P2 0 A3:2-3,B1:4 A3:P2,B1:P2 2-4"
228 " C0-3:S+ C1-3:S+ C2-3 C4 X1-3 X1-3:P2 P2 . 0 A2:1,A3:2-3 A2:P2,A3:P2 1-3"
229 " C0-3:S+ C1-3:S+ C2-3 C4 X2-3 X2-3 X2-3:P2 P2:C4-5 0 A3:2-3,B1:4-5 A3:P2,B1:P2 2-5"
232 " C0-3:S+ C1-3:S+ C2-3 C4-5 X2-3 X2-3:P1 P2 P1 0 A1:0-1,A2:,A3:2-3,B1:4-5 \
233 A1:P0,A2:P1,A3:P2,B1:P1 2-3"
234 " C0-3:S+ C1-3:S+ C2-3 C4 X2-3 X2-3:P1 P2 P1 0 A1:0-1,A2:,A3:2-3,B1:4 \
235 A1:P0,A2:P1,A3:P2,B1:P1 2-4,2-3"
236 " C0-3:S+ C1-3:S+ C3 C4 X2-3 X2-3:P1 P2 P1 0 A1:0-1,A2:2,A3:3,B1:4 \
237 A1:P0,A2:P1,A3:P2,B1:P1 2-4,3"
238 " C0-4:S+ C1-4:S+ C2-4 . X2-4 X2-4:P2 X4:P1 . 0 A1:0-1,A2:2-3,A3:4 \
239 A1:P0,A2:P2,A3:P1 2-4,2-3"
240 " C0-4:X2-4:S+ C1-4:X2-4:S+:P2 C2-4:X4:P1 \
241 . . X5 . . 0 A1:0-4,A2:1-4,A3:2-4 \
242 A1:P0,A2:P-2,A3:P-1"
243 " C0-4:X2-4:S+ C1-4:X2-4:S+:P2 C2-4:X4:P1 \
244 . . . X1 . 0 A1:0-1,A2:2-4,A3:2-4 \
245 A1:P0,A2:P2,A3:P-1 2-4"
248 " C0-3:S+ C1-3:S+ C2-3 . X2-3 X2-3 X2-3:P2:O2=0 . 0 A1:0-1,A2:1,A3:3 A1:P0,A3:P2 2-3"
249 " C0-3:S+ C1-3:S+ C2-3 . X2-3 X2-3 X2-3:P2:O2=0 O2=1 0 A1:0-1,A2:1,A3:2-3 A1:P0,A3:P2 2-3"
250 " C0-3:S+ C1-3:S+ C3 . X2-3 X2-3 P2:O3=0 . 0 A1:0-2,A2:1-2,A3: A1:P0,A3:P2 3"
251 …" C0-3:S+ C1-3:S+ C3 . X2-3 X2-3 T:P2:O3=0 . 0 A1:0-2,A2:1-2,A3:1-2 A1:P0,A3:P-2 3
253 # An invalidated remote partition cannot self-recover from hotplug
254 " C0-3:S+ C1-3:S+ C2 . X2-3 X2-3 T:P2:O2=0 O2=1 0 A1:0-3,A2:1-3,A3:2 A1:P0,A3:P-2"
257 " C0-3:S+ C1-3:S+ C2 . X2-3:X . . . 0 A1:0-3,A2:1-3,A3:2,XA1:"
260 " C0-3:S+ C1-3 . . . X3:P2 . . 0 A1:0-3,A2:1-3,XA2: A2:P-2"
261 " C0-3:S+ C1-3:X3:P2
262 . . X2-3 P2 . . 0 A1:0-2,A2:3,XA2:3 A2:P2 3"
265 …" C1-3:S+:P2 C2-3:X1:P2 . . . . . . 0 A1:1-3,XA1:1-3,A2:2-3:XA2: A1:P2,A2…
266 …" C1-3:S+:P2 C2-3:X1:P2 . . . X3:P2 . . 0 A1:1-2,XA1:1-3,A2:3:XA2:3 A1:P2,A2:…
267 " C0-3:P2 . . C4-6 C0-4 . . . 0 A1:0-4,B1:4-6 A1:P-2,B1:P0"
268 " C0-3:P2 . . C4-6 C0-4:C0-3 . . . 0 A1:0-3,B1:4-6 A1:P2,B1:P0 0-3"
269 " C0-3:P2 . . C3-5:C4-5 . . . . 0 A1:0-3,B1:4-5 A1:P2,B1:P0 0-3"
272 " C0-3:X1-3:S+:P2 C1-3:X2-3:S+:P2 C2-3:X3:P2 \
273 . . . . . 0 A1:1,A2:2,A3:3 A1:P2,A2:P2,A3:P2 1-3"
274 " C0-3:X1-3:S+:P2 C1-3:X2-3:S+:P2 C2-3:X3:P2 \
275 . . X4 . . 0 A1:1-3,A2:1-3,A3:2-3,XA2:,XA3: A1:P2,A2:P-2,A3:P-2 1-3"
276 " C0-3:X1-3:S+:P2 C1-3:X2-3:S+:P2 C2-3:X3:P2 \
277 . . C4 . . 0 A1:1-3,A2:1-3,A3:2-3,XA2:,XA3: A1:P2,A2:P-2,A3:P-2 1-3"
279 " C0-5:S+:P2 C4-5:S+:P1 . . . C3-5 . . 0 A1:0-2,A2:3-5 A1:P2,A2:P1 0-2"
280 " C0-5:S+:P2 C4-5:S+:P1 . . C1-5 . . . 0 A1:1-3,A2:4-5 A1:P2,A2:P1 1-3"
283 " C0-3:X2-3:S+ C1-3:X2-3:S+ C2-3:X2-3 \
284 . C4 . P2 . 0 A1:4,A2:4,XA2:,XA3:,A3:4 \
285 A1:P0,A3:P-2"
286 " C0-3:X2-3:S+ C1-3:X2-3:S+ C2-3:X2-3 \
287 . X1 . P2 . 0 A1:0-3,A2:1-3,XA1:1,XA2:,XA3:,A3:2-3 \
288 A1:P0,A3:P-2"
289 " C0-3:X2-3:S+ C1-3:X2-3:S+ C2-3:X2-3 \
290 . . C3 P2 . 0 A1:0-2,A2:0-2,XA2:3,XA3:3,A3:3 \
291 A1:P0,A3:P2 3"
292 " C0-3:X2-3:S+ C1-3:X2-3:S+ C2-3:X2-3 \
293 . . X3 P2 . 0 A1:0-2,A2:1-2,XA2:3,XA3:3,A3:3 \
294 A1:P0,A3:P2 3"
295 " C0-3:X2-3:S+ C1-3:X2-3:S+ C2-3:X2-3:P2 \
296 . . X3 . . 0 A1:0-3,A2:1-3,XA2:3,XA3:3,A3:2-3 \
297 A1:P0,A3:P-2"
298 " C0-3:X2-3:S+ C1-3:X2-3:S+ C2-3:X2-3:P2 \
299 . . C3 . . 0 A1:0-3,A2:3,XA2:3,XA3:3,A3:3 \
300 A1:P0,A3:P-2"
301 " C0-3:X2-3:S+ C1-3:X2-3:S+ C2-3:X2-3:P2 \
302 . C4 . . . 0 A1:4,A2:4,A3:4,XA1:,XA2:,XA3 \
303 A1:P0,A3:P-2"
305 # old-A1 old-A2 old-A3 old-B1 new-A1 new-A2 new-A3 new-B1 fail ECPUs Pstate ISOLCPUS
306 # ------ ------ ------ ------ ------ ------ ------ ------ ---- ----- ------ --------
312 "C2-3:P1:S+ C3:P1 . . . C2-4 . . 0 A1:,A2:2-3 A1:P1,A2:P1"
316 "C2-3:P1:S+ C3:P1 . . T C2-3 . . 0 A1:2-3,A2:2-3 A1:P1,A2:P-1"
317 " C3:P1:S+ C3 . . T P1 . . 0 A1:3,A2:3 A1:P1,A2:P-1"
318 …"$SETUP_A123_PARTITIONS . T:C2-3 . . . 0 A1:2-3,A2:2-3,A3:3 A1:P1,A2:P-1,A3:…
319 "$SETUP_A123_PARTITIONS . T:C2-3:C1-3 . . . 0 A1:1,A2:2,A3:3 A1:P1,A2:P1,A3:P1"
322 "C2-3:P1:S+ C3:P1 . . P0 . . . 0 A1:2-3,A2:3 A1:P0,A2:P-1"
323 …"$SETUP_A123_PARTITIONS . C2-3 P0 . . 0 A1:2-3,A2:2-3,A3:3 A1:P1,A2:P0,A3:P
327 "C2-3:P1:S+ . . . . C3-4:P1 . . 0 A1:2,A2:3 A1:P1,A2:P1"
330 "C0-1:P1:S+ C1 . C2-3 C4-5 . . . 0 A1:4-5,A2:4-5"
334 " C0-1:P1 . . C2-3 S+ C4-5:P1 . . 0 A1:0-1,A2:0-1 A1:P1,A2:P-1"
337 " C0-1:S+ C1 . C2-3 P1 . . . 0 A1:0-1,A2:1 A1:P1"
339 # A partition root with non-partition root parent is invalid, but it
341 " C0-1:S+ C1 . C2-3 . P2 . . 0 A1:0-1,A2:1 A1:P0,A2:P-2"
342 " C0-1:S+ C1:P2 . C2-3 P1 . . . 0 A1:0,A2:1 A1:P1,A2:P2"
344 # A non-exclusive cpuset.cpus change will invalidate partition and its siblings
345 " C0-1:P1 . . C2-3 C0-2 . . . 0 A1:0-2,B1:2-3 A1:P-1,B1:P0"
346 " C0-1:P1 . . P1:C2-3 C0-2 . . . 0 A1:0-2,B1:2-3 A1:P-1,B1:P-1"
347 " C0-1 . . P1:C2-3 C0-2 . . . 0 A1:0-2,B1:2-3 A1:P0,B1:P-1"
349 # old-A1 old-A2 old-A3 old-B1 new-A1 new-A2 new-A3 new-B1 fail ECPUs Pstate ISOLCPUS
350 # ------ ------ ------ ------ ------ ------ ------ ------ ---- ----- ------ --------
354 "C2-3:P1:S+ C3:P1 . . O2=0:T . . . 1 A1:,A2:3 A1:P1,A2:P1"
357 " C0-3 . . C4-5 X0-3 . . X3-5 1 A1:0-3,B1:4-5"
362 # $1 - <c>=<v> where <c> = cpu number, <v> value to be written
369 if [[ $VAL -eq 0 ]]
373 [[ -n "$OFFLINE_CPUS" ]] && {
374 OFFLINE_CPUS=$(echo $CPU $CPU $OFFLINE_CPUS | fmt -1 |\
375 sort | uniq -u)
384 # $1 - cgroup directory
385 # $2 - state
386 # $3 - showerr
395 SHOWERR=${3}
397 HASERR=0
399 [[ -z "$STATE" || "$STATE" = '.' ]] && return 0
400 [[ $VERBOSE -gt 0 ]] && SHOWERR=1
402 rm -f $TMPMSG
403 for CMD in $(echo $STATE | sed -e "s/:/ /g")
430 0) VAL=member
437 echo "Invalid partition state - $VAL"
449 COMM="echo 0 > $TFILE"
453 [[ $RET -ne 0 ]] && {
454 [[ -n "$SHOWERR" ]] && {
461 rm -f $TMPMSG
470 [[ -d $CGRP ]] || mkdir $CGRP
472 [[ $? -ne 0 ]] && {
480 [[ -n "OFFLINE_CPUS" ]] && {
493 echo 0 > $CGROUP2/cgroup.procs
497 set_ctrl_state . R-
512 [[ -e $CPUS ]] && echo "$CPUS: $(cat $CPUS)"
513 [[ -e $XCPUS ]] && echo "$XCPUS: $(cat $XCPUS)"
514 [[ -e $ECPUS ]] && echo "$ECPUS: $(cat $ECPUS)"
515 [[ -e $XECPUS ]] && echo "$XECPUS: $(cat $XECPUS)"
516 [[ -e $PRS ]] && echo "$PRS: $(cat $PRS)"
517 [[ -e $PCPUS ]] && echo "$PCPUS: $(cat $PCPUS)"
518 [[ -e $ISCPUS ]] && echo "$ISCPUS: $(cat $ISCPUS)"
524 # $1 - check string, format: <cgroup>:<cpu-list>[,<cgroup>:<cpu-list>]*
529 for CHK in $(echo $CHK_STR | sed -e "s/,/ /g")
531 set -- $(echo $CHK | sed -e "s/:/ /g")
543 [[ -e $CGRP/$FILE ]] || return 1
550 # $1 - check string, format: <cgroup>:<state>[,<cgroup>:<state>]*
555 for CHK in $(echo $CHK_STR | sed -e "s/,/ /g")
557 set -- $(echo $CHK | sed -e "s/:/ /g")
575 member) VAL=0
583 VAL=-1
586 VAL=-2
591 return 0
600 # CPUs as well as CPUs in non-isolated 1-CPU partition. Those CPUs may
604 # $1 - expected isolated cpu list(s) <isolcpus1>{,<isolcpus2>}
605 # <isolcpus1> - expected sched/domains value
606 # <isolcpus2> - cpuset.cpus.isolated value = <isolcpus1> if not defined
619 elif [[ $(expr $EXPECT_VAL : ".*,.*") > 0 ]]
621 set -- $(echo $EXPECT_VAL | sed -e "s/,/ /g")
631 [[ -f $ISCPUS ]] && {
645 [[ -d $SCHED_DOMAINS ]] || return 0
647 for ((CPU=0; CPU < $NR_CPUS; CPU++))
649 [[ -n "$(ls ${SCHED_DOMAINS}/cpu$CPU)" ]] && continue
651 if [[ -z "$LASTISOLCPU" ]]
655 elif [[ "$LASTISOLCPU" -eq $((CPU - 1)) ]]
657 echo $ISOLCPUS | grep -q "\<$LASTISOLCPU\$"
658 if [[ $? -eq 0 ]]
660 ISOLCPUS=${ISOLCPUS}-
664 if [[ $ISOLCPUS = *- ]]
672 [[ "$ISOLCPUS" = *- ]] && ISOLCPUS=${ISOLCPUS}$LASTISOLCPU
680 ADDINFO=$3
682 [[ -n "$ADDINFO" ]] && echo "*** $ADDINFO ***"
694 [[ $VERBOSE -gt 0 ]] || return 0
696 RETRY=0
697 while [[ $RETRY -lt 5 ]]
701 [[ $? -eq 0 ]] && return 0
711 # $1 - test matrix name
721 I=0
727 while [[ $I -lt $CNT ]]
730 [[ $VERBOSE -gt 1 ]] && {
734 eval set -- "\${$TEST[$I]}"
737 OLD_A3=$3
752 RETVAL=0
758 [[ $RETVAL -ne $RESULT ]] && test_fail $I result
760 [[ -n "$ECPUS" && "$ECPUS" != . ]] && {
762 [[ $? -ne 0 ]] && test_fail $I "effective CPU"
765 [[ -n "$STATES" && "$STATES" != . ]] && {
767 [[ $? -ne 0 ]] && test_fail $I states
772 [[ -n "$ICPUS" ]] && {
774 [[ $? -ne 0 ]] && test_fail $I "isolated CPU" \
782 RETRY=0
783 while [[ $NEWLIST != $CPULIST && $RETRY -lt 8 ]]
795 [[ $VERBOSE -gt 0 ]] && echo "Test $I done."
807 echo 2-3 > cpuset.cpus
838 echo 2-3 > cpuset.cpus
840 test_effective_cpus 2-3
854 test_effective_cpus 3
856 echo 2-3 > cpuset.cpus
863 [[ -d A1 ]] && rmdir A1
887 ERR=0
890 [[ -f $WAIT_INOTIFY ]] || {
897 echo 0 > cgroup.procs
900 rm -f $PRS
903 set_ctrl_state . "O1=0"
905 check_cgroup_states ".:P-1"
906 if [[ $? -ne 0 ]]
908 echo "FAILED: Inotify test - partition not invalid"
910 elif [[ ! -f $PRS ]]
912 echo "FAILED: Inotify test - event not generated"
917 echo "FAILED: Inotify test - incorrect state"
923 echo 0 > ../cgroup.procs
924 if [[ $ERR -ne 0 ]]
932 trap cleanup 0 2 3 6