Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0
0003 #
0004 # CPU helpers
0005 
0006 # protect against multiple inclusion
0007 if [ $FILE_CPU ]; then
0008         return 0
0009 else
0010         FILE_CPU=DONE
0011 fi
0012 
0013 source cpufreq.sh
0014 
0015 for_each_cpu()
0016 {
0017         cpus=$(ls $CPUROOT | grep "cpu[0-9].*")
0018         for cpu in $cpus; do
0019                 $@ $cpu
0020         done
0021 }
0022 
0023 for_each_non_boot_cpu()
0024 {
0025         cpus=$(ls $CPUROOT | grep "cpu[1-9].*")
0026         for cpu in $cpus; do
0027                 $@ $cpu
0028         done
0029 }
0030 
0031 #$1: cpu
0032 offline_cpu()
0033 {
0034         printf "Offline $1\n"
0035         echo 0 > $CPUROOT/$1/online
0036 }
0037 
0038 #$1: cpu
0039 online_cpu()
0040 {
0041         printf "Online $1\n"
0042         echo 1 > $CPUROOT/$1/online
0043 }
0044 
0045 #$1: cpu
0046 reboot_cpu()
0047 {
0048         offline_cpu $1
0049         online_cpu $1
0050 }
0051 
0052 # Reboot CPUs
0053 # param: number of times we want to run the loop
0054 reboot_cpus()
0055 {
0056         printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"
0057 
0058         for i in `seq 1 $1`; do
0059                 for_each_non_boot_cpu offline_cpu
0060                 for_each_non_boot_cpu online_cpu
0061                 printf "\n"
0062         done
0063 
0064         printf "\n%s\n\n" "------------------------------------------------"
0065 }
0066 
0067 # Prints warning for all CPUs with missing cpufreq directory
0068 print_unmanaged_cpus()
0069 {
0070         for_each_cpu cpu_should_have_cpufreq_directory
0071 }
0072 
0073 # Counts CPUs with cpufreq directories
0074 count_cpufreq_managed_cpus()
0075 {
0076         count=0;
0077 
0078         for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do
0079                 if [ -d $CPUROOT/$cpu/cpufreq ]; then
0080                         let count=count+1;
0081                 fi
0082         done
0083 
0084         echo $count;
0085 }