forked from Qortal/Brooklyn
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.
85 lines
1.3 KiB
85 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; |
|
}
|
|
|