Submit
Path:
~
/
/
usr
/
lib
/
modules
/
5.15.0-152-generic
/
build
/
tools
/
testing
/
selftests
/
cpufreq
/
File Content:
governor.sh
#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # # Test governors # protect against multiple inclusion if [ $FILE_GOVERNOR ]; then return 0 else FILE_GOVERNOR=DONE fi source cpu.sh source cpufreq.sh CUR_GOV= CUR_FREQ= # Find governor's directory path # $1: policy, $2: governor find_gov_directory() { if [ -d $CPUFREQROOT/$2 ]; then printf "$CPUFREQROOT/$2\n" elif [ -d $CPUFREQROOT/$1/$2 ]; then printf "$CPUFREQROOT/$1/$2\n" else printf "INVALID\n" fi } # $1: policy find_current_governor() { cat $CPUFREQROOT/$1/scaling_governor } # $1: policy backup_governor() { CUR_GOV=$(find_current_governor $1) printf "Governor backup done for $1: $CUR_GOV\n" if [ $CUR_GOV == "userspace" ]; then CUR_FREQ=$(find_current_freq $1) printf "Governor frequency backup done for $1: $CUR_FREQ\n" fi printf "\n" } # $1: policy restore_governor() { __switch_governor $1 $CUR_GOV printf "Governor restored for $1 to $CUR_GOV\n" if [ $CUR_GOV == "userspace" ]; then set_cpu_frequency $1 $CUR_FREQ printf "Governor frequency restored for $1: $CUR_FREQ\n" fi printf "\n" } # param: # $1: policy, $2: governor __switch_governor() { echo $2 > $CPUFREQROOT/$1/scaling_governor } # param: # $1: cpu, $2: governor __switch_governor_for_cpu() { echo $2 > $CPUROOT/$1/cpufreq/scaling_governor } # SWITCH GOVERNORS # $1: cpu, $2: governor switch_governor() { local filepath=$CPUFREQROOT/$1/scaling_available_governors # check if governor is available local found=$(cat $filepath | grep $2 | wc -l) if [ $found = 0 ]; then echo 1; return fi __switch_governor $1 $2 echo 0; } # $1: policy, $2: governor switch_show_governor() { cur_gov=find_current_governor if [ $cur_gov == "userspace" ]; then cur_freq=find_current_freq fi # switch governor __switch_governor $1 $2 printf "\nSwitched governor for $1 to $2\n\n" if [ $2 == "userspace" -o $2 == "powersave" -o $2 == "performance" ]; then printf "No files to read for $2 governor\n\n" return fi # show governor files local govpath=$(find_gov_directory $1 $2) read_cpufreq_files_in_dir $govpath } # $1: function to be called, $2: policy call_for_each_governor() { local filepath=$CPUFREQROOT/$2/scaling_available_governors # Exit if cpu isn't managed by cpufreq core if [ ! -f $filepath ]; then return; fi backup_governor $2 local governors=$(cat $filepath) printf "Available governors for $2: $governors\n" for governor in $governors; do $1 $2 $governor done restore_governor $2 } # $1: loop count shuffle_governors_for_all_cpus() { printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n" for i in `seq 1 $1`; do for_each_policy call_for_each_governor switch_show_governor done printf "%s\n\n" "------------------------------------------------" }
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
Makefile
161 bytes
0644
cpu.sh
1290 bytes
0755
cpufreq.sh
4654 bytes
0755
governor.sh
2784 bytes
0755
main.sh
3578 bytes
0755
module.sh
4938 bytes
0755
special-tests.sh
1997 bytes
0755
N4ST4R_ID | Naxtarrr