You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
1.3 KiB
86 lines
1.3 KiB
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# 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;
|
|
}
|