| #!/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; |
| } |