Path: blob/master/tools/testing/selftests/cgroup/test_cpuset_v1_base.sh
26285 views
#!/bin/bash1# SPDX-License-Identifier: GPL-2.02#3# Basc test for cpuset v1 interfaces write/read4#56skip_test() {7echo "$1"8echo "Test SKIPPED"9exit 4 # ksft_skip10}1112write_test() {13dir=$114interface=$215value=$316original=$(cat $dir/$interface)17echo "testing $interface $value"18echo $value > $dir/$interface19new=$(cat $dir/$interface)20[[ $value -ne $(cat $dir/$interface) ]] && {21echo "$interface write $value failed: new:$new"22exit 123}24}2526[[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"2728# Find cpuset v1 mount point29CPUSET=$(mount -t cgroup | grep cpuset | head -1 | awk '{print $3}')30[[ -n "$CPUSET" ]] || skip_test "cpuset v1 mount point not found!"3132#33# Create a test cpuset, read write test34#35TDIR=test$$36[[ -d $CPUSET/$TDIR ]] || mkdir $CPUSET/$TDIR3738ITF_MATRIX=(39#interface value expect root_only40'cpuset.cpus 0-1 0-1 0'41'cpuset.mem_exclusive 1 1 0'42'cpuset.mem_exclusive 0 0 0'43'cpuset.mem_hardwall 1 1 0'44'cpuset.mem_hardwall 0 0 0'45'cpuset.memory_migrate 1 1 0'46'cpuset.memory_migrate 0 0 0'47'cpuset.memory_spread_page 1 1 0'48'cpuset.memory_spread_page 0 0 0'49'cpuset.memory_spread_slab 1 1 0'50'cpuset.memory_spread_slab 0 0 0'51'cpuset.mems 0 0 0'52'cpuset.sched_load_balance 1 1 0'53'cpuset.sched_load_balance 0 0 0'54'cpuset.sched_relax_domain_level 2 2 0'55'cpuset.memory_pressure_enabled 1 1 1'56'cpuset.memory_pressure_enabled 0 0 1'57)5859run_test()60{61cnt="${ITF_MATRIX[@]}"62for i in "${ITF_MATRIX[@]}" ; do63args=($i)64root_only=${args[3]}65[[ $root_only -eq 1 ]] && {66write_test "$CPUSET" "${args[0]}" "${args[1]}" "${args[2]}"67continue68}69write_test "$CPUSET/$TDIR" "${args[0]}" "${args[1]}" "${args[2]}"70done71}7273run_test74rmdir $CPUSET/$TDIR75echo "Test PASSED"76exit 0777879