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