License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[linux-block.git] / tools / testing / selftests / cpufreq / cpu.sh
CommitLineData
e66d5b67 1#!/bin/bash
b2441318 2# SPDX-License-Identifier: GPL-2.0
e66d5b67
VK
3#
4# CPU helpers
5
6# protect against multiple inclusion
7if [ $FILE_CPU ]; then
8 return 0
9else
10 FILE_CPU=DONE
11fi
12
13source cpufreq.sh
14
15for_each_cpu()
16{
17 cpus=$(ls $CPUROOT | grep "cpu[0-9].*")
18 for cpu in $cpus; do
19 $@ $cpu
20 done
21}
22
23for_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
32offline_cpu()
33{
34 printf "Offline $1\n"
35 echo 0 > $CPUROOT/$1/online
36}
37
38#$1: cpu
39online_cpu()
40{
41 printf "Online $1\n"
42 echo 1 > $CPUROOT/$1/online
43}
44
45#$1: cpu
46reboot_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
54reboot_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
68print_unmanaged_cpus()
69{
70 for_each_cpu cpu_should_have_cpufreq_directory
71}
72
73# Counts CPUs with cpufreq directories
74count_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}