diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2017-01-13 12:06:45 +0530 |
---|---|---|
committer | Shuah Khan <shuahkh@osg.samsung.com> | 2017-01-19 10:32:05 -0700 |
commit | e66d5b673741cf6b7da250da9f84a165b1e4342d (patch) | |
tree | 8f9208141d6680a61dfe931544cf0e19b8a7b242 /tools/testing/selftests/cpufreq/cpu.sh | |
parent | selftests: Add intel_pstate to TARGETS (diff) | |
download | linux-dev-e66d5b673741cf6b7da250da9f84a165b1e4342d.tar.xz linux-dev-e66d5b673741cf6b7da250da9f84a165b1e4342d.zip |
selftest: cpufreq: Add support for cpufreq tests
This patch adds supports for basic cpufreq tests, which can be performed
independent of any platform.
It does basic tests for now, like
- reading all cpufreq files
- trying to update them
- switching frequencies
- switching governors
This can be extended to have more specific tests later on.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Diffstat (limited to 'tools/testing/selftests/cpufreq/cpu.sh')
-rwxr-xr-x | tools/testing/selftests/cpufreq/cpu.sh | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/tools/testing/selftests/cpufreq/cpu.sh b/tools/testing/selftests/cpufreq/cpu.sh new file mode 100755 index 000000000000..8e08a83d65f2 --- /dev/null +++ b/tools/testing/selftests/cpufreq/cpu.sh @@ -0,0 +1,84 @@ +#!/bin/bash +# +# CPU helpers + +# protect against multiple inclusion +if [ $FILE_CPU ]; then + return 0 +else + FILE_CPU=DONE +fi + +source cpufreq.sh + +for_each_cpu() +{ + cpus=$(ls $CPUROOT | grep "cpu[0-9].*") + for cpu in $cpus; do + $@ $cpu + done +} + +for_each_non_boot_cpu() +{ + cpus=$(ls $CPUROOT | grep "cpu[1-9].*") + for cpu in $cpus; do + $@ $cpu + done +} + +#$1: cpu +offline_cpu() +{ + printf "Offline $1\n" + echo 0 > $CPUROOT/$1/online +} + +#$1: cpu +online_cpu() +{ + printf "Online $1\n" + echo 1 > $CPUROOT/$1/online +} + +#$1: cpu +reboot_cpu() +{ + offline_cpu $1 + online_cpu $1 +} + +# Reboot CPUs +# param: number of times we want to run the loop +reboot_cpus() +{ + printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n" + + for i in `seq 1 $1`; do + for_each_non_boot_cpu offline_cpu + for_each_non_boot_cpu online_cpu + printf "\n" + done + + printf "\n%s\n\n" "------------------------------------------------" +} + +# Prints warning for all CPUs with missing cpufreq directory +print_unmanaged_cpus() +{ + for_each_cpu cpu_should_have_cpufreq_directory +} + +# Counts CPUs with cpufreq directories +count_cpufreq_managed_cpus() +{ + count=0; + + for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do + if [ -d $CPUROOT/$cpu/cpufreq ]; then + let count=count+1; + fi + done + + echo $count; +} |