Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / testing / selftests / cgroup / test_cpuset_v1_hp.sh
blob3f45512fb512eb37eaeee1226be0d0c2b154c92d
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
4 # Test the special cpuset v1 hotplug case where a cpuset become empty of
5 # CPUs will force migration of tasks out to an ancestor.
8 skip_test() {
9 echo "$1"
10 echo "Test SKIPPED"
11 exit 4 # ksft_skip
14 [[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"
16 # Find cpuset v1 mount point
17 CPUSET=$(mount -t cgroup | grep cpuset | head -1 | awk -e '{print $3}')
18 [[ -n "$CPUSET" ]] || skip_test "cpuset v1 mount point not found!"
21 # Create a test cpuset, put a CPU and a task there and offline that CPU
23 TDIR=test$$
24 [[ -d $CPUSET/$TDIR ]] || mkdir $CPUSET/$TDIR
25 echo 1 > $CPUSET/$TDIR/cpuset.cpus
26 echo 0 > $CPUSET/$TDIR/cpuset.mems
27 sleep 10&
28 TASK=$!
29 echo $TASK > $CPUSET/$TDIR/tasks
30 NEWCS=$(cat /proc/$TASK/cpuset)
31 [[ $NEWCS != "/$TDIR" ]] && {
32 echo "Unexpected cpuset $NEWCS, test FAILED!"
33 exit 1
36 echo 0 > /sys/devices/system/cpu/cpu1/online
37 sleep 0.5
38 echo 1 > /sys/devices/system/cpu/cpu1/online
39 NEWCS=$(cat /proc/$TASK/cpuset)
40 rmdir $CPUSET/$TDIR
41 [[ $NEWCS != "/" ]] && {
42 echo "cpuset $NEWCS, test FAILED!"
43 exit 1
45 echo "Test PASSED"
46 exit 0