86 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03#4# CPU helpers5 6# protect against multiple inclusion7if [ $FILE_CPU ]; then8 return 09else10 FILE_CPU=DONE11fi12 13source cpufreq.sh14 15for_each_cpu()16{17 cpus=$(ls $CPUROOT | grep "cpu[0-9].*")18 for cpu in $cpus; do19 $@ $cpu20 done21}22 23for_each_non_boot_cpu()24{25 cpus=$(ls $CPUROOT | grep "cpu[1-9].*")26 for cpu in $cpus; do27 $@ $cpu28 done29}30 31#$1: cpu32offline_cpu()33{34 printf "Offline $1\n"35 echo 0 > $CPUROOT/$1/online36}37 38#$1: cpu39online_cpu()40{41 printf "Online $1\n"42 echo 1 > $CPUROOT/$1/online43}44 45#$1: cpu46reboot_cpu()47{48 offline_cpu $149 online_cpu $150}51 52# Reboot CPUs53# param: number of times we want to run the loop54reboot_cpus()55{56 printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"57 58 for i in `seq 1 $1`; do59 for_each_non_boot_cpu offline_cpu60 for_each_non_boot_cpu online_cpu61 printf "\n"62 done63 64 printf "\n%s\n\n" "------------------------------------------------"65}66 67# Prints warning for all CPUs with missing cpufreq directory68print_unmanaged_cpus()69{70 for_each_cpu cpu_should_have_cpufreq_directory71}72 73# Counts CPUs with cpufreq directories74count_cpufreq_managed_cpus()75{76 count=0;77 78 for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do79 if [ -d $CPUROOT/$cpu/cpufreq ]; then80 let count=count+1;81 fi82 done83 84 echo $count;85}86