blob: 261d9578bf0626ba462917326204e1e8ff4e762f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
#!/bin/bash
# parameters:
# - $1: Name of the output file with all the logs, dump.txt by default.
source cpu.sh
source governor.sh
source special-tests.sh
OUTFILE=dump
FUNC=basic # do basic tests by default
# Check validity of arguments
USAGE="Usage: $0 [-h] [-of args] [-h <help>] [-o <output-file-for-dump>] [-f <basic: cpufreq_basic_tests, sp1: governor_race, sp2: simple_lockdep, sp3: hotplug_with_updates>]"
cpufreq_basic_tests()
{
echo "*** RUNNING CPUFREQ SANITY TESTS ***"
echo "===================================="
echo ""
count=$(count_cpufreq_managed_cpus)
if [ $count = 0 ]; then
echo "No cpu is managed by cpufreq core, exiting"
exit;
else
echo "CPUFreq manages: $count CPUs"
echo ""
fi
# Detect & print which CPUs aren't managed by cpufreq
print_unmanaged_cpus
# read/update all cpufreq files
read_all_cpufreq_files
update_all_cpufreq_files
# hotplug cpus
hotplug_1_by_1 5
hotplug_together 5
# Test all governors
shuffle_governors_for_all_cpus 1
# Test all frequencies
shuffle_frequency_for_all_cpus 2
}
# Parse arguments
parse_arguments()
{
while getopts hf:o: arguments 2>/dev/null
do
case $arguments in
h) # --help
echo "$USAGE"
exit 0
;;
f) # --func_type (Function to perform: basic, sp1, sp2, sp3, default: basic)
FUNC=$OPTARG
;;
o) # --output-file (Output file to store dumps)
OUTFILE=$OPTARG
;;
\?) # getopts issues an error message
echo "$USAGE "
exit 1
;;
esac
done
}
# Run isolation test for $FUNC
run_func()
{
case "$FUNC" in
"basic")
call_routine cpufreq_basic_tests $OUTFILE
;;
"sp1")
governor_race
;;
"sp2")
simple_lockdep
;;
"sp3")
hotplug_with_updates
;;
*)
echo "Invalid [-f] function type"
;;
esac
}
# Parse isol arguments
parse_arguments $@
# Run requested functions
run_func
|