Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/testing/selftests/cpufreq/cpu.sh
26302 views
1
#!/bin/bash
2
# SPDX-License-Identifier: GPL-2.0
3
#
4
# CPU helpers
5
6
# protect against multiple inclusion
7
if [ $FILE_CPU ]; then
8
return 0
9
else
10
FILE_CPU=DONE
11
fi
12
13
source cpufreq.sh
14
15
for_each_cpu()
16
{
17
cpus=$(ls $CPUROOT | grep "cpu[0-9].*")
18
for cpu in $cpus; do
19
$@ $cpu
20
done
21
}
22
23
for_each_non_boot_cpu()
24
{
25
cpus=$(ls $CPUROOT | grep "cpu[1-9].*")
26
for cpu in $cpus; do
27
$@ $cpu
28
done
29
}
30
31
#$1: cpu
32
offline_cpu()
33
{
34
printf "Offline $1\n"
35
echo 0 > $CPUROOT/$1/online
36
}
37
38
#$1: cpu
39
online_cpu()
40
{
41
printf "Online $1\n"
42
echo 1 > $CPUROOT/$1/online
43
}
44
45
#$1: cpu
46
reboot_cpu()
47
{
48
offline_cpu $1
49
online_cpu $1
50
}
51
52
# Reboot CPUs
53
# param: number of times we want to run the loop
54
reboot_cpus()
55
{
56
printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"
57
58
for i in `seq 1 $1`; do
59
for_each_non_boot_cpu offline_cpu
60
for_each_non_boot_cpu online_cpu
61
printf "\n"
62
done
63
64
printf "\n%s\n\n" "------------------------------------------------"
65
}
66
67
# Prints warning for all CPUs with missing cpufreq directory
68
print_unmanaged_cpus()
69
{
70
for_each_cpu cpu_should_have_cpufreq_directory
71
}
72
73
# Counts CPUs with cpufreq directories
74
count_cpufreq_managed_cpus()
75
{
76
count=0;
77
78
for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do
79
if [ -d $CPUROOT/$cpu/cpufreq ]; then
80
let count=count+1;
81
fi
82
done
83
84
echo $count;
85
}
86
87