forked from Minki/linux
e66d5b6737
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>
85 lines
1.2 KiB
Bash
Executable File
85 lines
1.2 KiB
Bash
Executable File
#!/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;
|
|
}
|