47 lines · bash
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.03#4# Test the special cpuset v1 hotplug case where a cpuset become empty of5# CPUs will force migration of tasks out to an ancestor.6#7 8skip_test() {9 echo "$1"10 echo "Test SKIPPED"11 exit 4 # ksft_skip12}13 14[[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"15 16# Find cpuset v1 mount point17CPUSET=$(mount -t cgroup | grep cpuset | head -1 | awk -e '{print $3}')18[[ -n "$CPUSET" ]] || skip_test "cpuset v1 mount point not found!"19 20#21# Create a test cpuset, put a CPU and a task there and offline that CPU22#23TDIR=test$$24[[ -d $CPUSET/$TDIR ]] || mkdir $CPUSET/$TDIR25echo 1 > $CPUSET/$TDIR/cpuset.cpus26echo 0 > $CPUSET/$TDIR/cpuset.mems27sleep 10&28TASK=$!29echo $TASK > $CPUSET/$TDIR/tasks30NEWCS=$(cat /proc/$TASK/cpuset)31[[ $NEWCS != "/$TDIR" ]] && {32 echo "Unexpected cpuset $NEWCS, test FAILED!"33 exit 134}35 36echo 0 > /sys/devices/system/cpu/cpu1/online37sleep 0.538echo 1 > /sys/devices/system/cpu/cpu1/online39NEWCS=$(cat /proc/$TASK/cpuset)40rmdir $CPUSET/$TDIR41[[ $NEWCS != "/" ]] && {42 echo "cpuset $NEWCS, test FAILED!"43 exit 144}45echo "Test PASSED"46exit 047