1e66d5b67SViresh Kumar#!/bin/bash 2*b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 3e66d5b67SViresh Kumar# 4e66d5b67SViresh Kumar# CPU helpers 5e66d5b67SViresh Kumar 6e66d5b67SViresh Kumar# protect against multiple inclusion 7e66d5b67SViresh Kumarif [ $FILE_CPU ]; then 8e66d5b67SViresh Kumar return 0 9e66d5b67SViresh Kumarelse 10e66d5b67SViresh Kumar FILE_CPU=DONE 11e66d5b67SViresh Kumarfi 12e66d5b67SViresh Kumar 13e66d5b67SViresh Kumarsource cpufreq.sh 14e66d5b67SViresh Kumar 15e66d5b67SViresh Kumarfor_each_cpu() 16e66d5b67SViresh Kumar{ 17e66d5b67SViresh Kumar cpus=$(ls $CPUROOT | grep "cpu[0-9].*") 18e66d5b67SViresh Kumar for cpu in $cpus; do 19e66d5b67SViresh Kumar $@ $cpu 20e66d5b67SViresh Kumar done 21e66d5b67SViresh Kumar} 22e66d5b67SViresh Kumar 23e66d5b67SViresh Kumarfor_each_non_boot_cpu() 24e66d5b67SViresh Kumar{ 25e66d5b67SViresh Kumar cpus=$(ls $CPUROOT | grep "cpu[1-9].*") 26e66d5b67SViresh Kumar for cpu in $cpus; do 27e66d5b67SViresh Kumar $@ $cpu 28e66d5b67SViresh Kumar done 29e66d5b67SViresh Kumar} 30e66d5b67SViresh Kumar 31e66d5b67SViresh Kumar#$1: cpu 32e66d5b67SViresh Kumaroffline_cpu() 33e66d5b67SViresh Kumar{ 34e66d5b67SViresh Kumar printf "Offline $1\n" 35e66d5b67SViresh Kumar echo 0 > $CPUROOT/$1/online 36e66d5b67SViresh Kumar} 37e66d5b67SViresh Kumar 38e66d5b67SViresh Kumar#$1: cpu 39e66d5b67SViresh Kumaronline_cpu() 40e66d5b67SViresh Kumar{ 41e66d5b67SViresh Kumar printf "Online $1\n" 42e66d5b67SViresh Kumar echo 1 > $CPUROOT/$1/online 43e66d5b67SViresh Kumar} 44e66d5b67SViresh Kumar 45e66d5b67SViresh Kumar#$1: cpu 46e66d5b67SViresh Kumarreboot_cpu() 47e66d5b67SViresh Kumar{ 48e66d5b67SViresh Kumar offline_cpu $1 49e66d5b67SViresh Kumar online_cpu $1 50e66d5b67SViresh Kumar} 51e66d5b67SViresh Kumar 52e66d5b67SViresh Kumar# Reboot CPUs 53e66d5b67SViresh Kumar# param: number of times we want to run the loop 54e66d5b67SViresh Kumarreboot_cpus() 55e66d5b67SViresh Kumar{ 56e66d5b67SViresh Kumar printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n" 57e66d5b67SViresh Kumar 58e66d5b67SViresh Kumar for i in `seq 1 $1`; do 59e66d5b67SViresh Kumar for_each_non_boot_cpu offline_cpu 60e66d5b67SViresh Kumar for_each_non_boot_cpu online_cpu 61e66d5b67SViresh Kumar printf "\n" 62e66d5b67SViresh Kumar done 63e66d5b67SViresh Kumar 64e66d5b67SViresh Kumar printf "\n%s\n\n" "------------------------------------------------" 65e66d5b67SViresh Kumar} 66e66d5b67SViresh Kumar 67e66d5b67SViresh Kumar# Prints warning for all CPUs with missing cpufreq directory 68e66d5b67SViresh Kumarprint_unmanaged_cpus() 69e66d5b67SViresh Kumar{ 70e66d5b67SViresh Kumar for_each_cpu cpu_should_have_cpufreq_directory 71e66d5b67SViresh Kumar} 72e66d5b67SViresh Kumar 73e66d5b67SViresh Kumar# Counts CPUs with cpufreq directories 74e66d5b67SViresh Kumarcount_cpufreq_managed_cpus() 75e66d5b67SViresh Kumar{ 76e66d5b67SViresh Kumar count=0; 77e66d5b67SViresh Kumar 78e66d5b67SViresh Kumar for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do 79e66d5b67SViresh Kumar if [ -d $CPUROOT/$cpu/cpufreq ]; then 80e66d5b67SViresh Kumar let count=count+1; 81e66d5b67SViresh Kumar fi 82e66d5b67SViresh Kumar done 83e66d5b67SViresh Kumar 84e66d5b67SViresh Kumar echo $count; 85e66d5b67SViresh Kumar} 86