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