78 lines
1.7 KiB
Bash
Executable File
78 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Basc test for cpuset v1 interfaces write/read
|
|
#
|
|
|
|
skip_test() {
|
|
echo "$1"
|
|
echo "Test SKIPPED"
|
|
exit 4 # ksft_skip
|
|
}
|
|
|
|
write_test() {
|
|
dir=$1
|
|
interface=$2
|
|
value=$3
|
|
original=$(cat $dir/$interface)
|
|
echo "testing $interface $value"
|
|
echo $value > $dir/$interface
|
|
new=$(cat $dir/$interface)
|
|
[[ $value -ne $(cat $dir/$interface) ]] && {
|
|
echo "$interface write $value failed: new:$new"
|
|
exit 1
|
|
}
|
|
}
|
|
|
|
[[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"
|
|
|
|
# Find cpuset v1 mount point
|
|
CPUSET=$(mount -t cgroup | grep cpuset | head -1 | awk '{print $3}')
|
|
[[ -n "$CPUSET" ]] || skip_test "cpuset v1 mount point not found!"
|
|
|
|
#
|
|
# Create a test cpuset, read write test
|
|
#
|
|
TDIR=test$$
|
|
[[ -d $CPUSET/$TDIR ]] || mkdir $CPUSET/$TDIR
|
|
|
|
ITF_MATRIX=(
|
|
#interface value expect root_only
|
|
'cpuset.cpus 0-1 0-1 0'
|
|
'cpuset.mem_exclusive 1 1 0'
|
|
'cpuset.mem_exclusive 0 0 0'
|
|
'cpuset.mem_hardwall 1 1 0'
|
|
'cpuset.mem_hardwall 0 0 0'
|
|
'cpuset.memory_migrate 1 1 0'
|
|
'cpuset.memory_migrate 0 0 0'
|
|
'cpuset.memory_spread_page 1 1 0'
|
|
'cpuset.memory_spread_page 0 0 0'
|
|
'cpuset.memory_spread_slab 1 1 0'
|
|
'cpuset.memory_spread_slab 0 0 0'
|
|
'cpuset.mems 0 0 0'
|
|
'cpuset.sched_load_balance 1 1 0'
|
|
'cpuset.sched_load_balance 0 0 0'
|
|
'cpuset.sched_relax_domain_level 2 2 0'
|
|
'cpuset.memory_pressure_enabled 1 1 1'
|
|
'cpuset.memory_pressure_enabled 0 0 1'
|
|
)
|
|
|
|
run_test()
|
|
{
|
|
cnt="${ITF_MATRIX[@]}"
|
|
for i in "${ITF_MATRIX[@]}" ; do
|
|
args=($i)
|
|
root_only=${args[3]}
|
|
[[ $root_only -eq 1 ]] && {
|
|
write_test "$CPUSET" "${args[0]}" "${args[1]}" "${args[2]}"
|
|
continue
|
|
}
|
|
write_test "$CPUSET/$TDIR" "${args[0]}" "${args[1]}" "${args[2]}"
|
|
done
|
|
}
|
|
|
|
run_test
|
|
rmdir $CPUSET/$TDIR
|
|
echo "Test PASSED"
|
|
exit 0
|