Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/testing/selftests/cgroup/test_cpuset_v1_base.sh
26285 views
1
#!/bin/bash
2
# SPDX-License-Identifier: GPL-2.0
3
#
4
# Basc test for cpuset v1 interfaces write/read
5
#
6
7
skip_test() {
8
echo "$1"
9
echo "Test SKIPPED"
10
exit 4 # ksft_skip
11
}
12
13
write_test() {
14
dir=$1
15
interface=$2
16
value=$3
17
original=$(cat $dir/$interface)
18
echo "testing $interface $value"
19
echo $value > $dir/$interface
20
new=$(cat $dir/$interface)
21
[[ $value -ne $(cat $dir/$interface) ]] && {
22
echo "$interface write $value failed: new:$new"
23
exit 1
24
}
25
}
26
27
[[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"
28
29
# Find cpuset v1 mount point
30
CPUSET=$(mount -t cgroup | grep cpuset | head -1 | awk '{print $3}')
31
[[ -n "$CPUSET" ]] || skip_test "cpuset v1 mount point not found!"
32
33
#
34
# Create a test cpuset, read write test
35
#
36
TDIR=test$$
37
[[ -d $CPUSET/$TDIR ]] || mkdir $CPUSET/$TDIR
38
39
ITF_MATRIX=(
40
#interface value expect root_only
41
'cpuset.cpus 0-1 0-1 0'
42
'cpuset.mem_exclusive 1 1 0'
43
'cpuset.mem_exclusive 0 0 0'
44
'cpuset.mem_hardwall 1 1 0'
45
'cpuset.mem_hardwall 0 0 0'
46
'cpuset.memory_migrate 1 1 0'
47
'cpuset.memory_migrate 0 0 0'
48
'cpuset.memory_spread_page 1 1 0'
49
'cpuset.memory_spread_page 0 0 0'
50
'cpuset.memory_spread_slab 1 1 0'
51
'cpuset.memory_spread_slab 0 0 0'
52
'cpuset.mems 0 0 0'
53
'cpuset.sched_load_balance 1 1 0'
54
'cpuset.sched_load_balance 0 0 0'
55
'cpuset.sched_relax_domain_level 2 2 0'
56
'cpuset.memory_pressure_enabled 1 1 1'
57
'cpuset.memory_pressure_enabled 0 0 1'
58
)
59
60
run_test()
61
{
62
cnt="${ITF_MATRIX[@]}"
63
for i in "${ITF_MATRIX[@]}" ; do
64
args=($i)
65
root_only=${args[3]}
66
[[ $root_only -eq 1 ]] && {
67
write_test "$CPUSET" "${args[0]}" "${args[1]}" "${args[2]}"
68
continue
69
}
70
write_test "$CPUSET/$TDIR" "${args[0]}" "${args[1]}" "${args[2]}"
71
done
72
}
73
74
run_test
75
rmdir $CPUSET/$TDIR
76
echo "Test PASSED"
77
exit 0
78
79