5 # protect against multiple inclusion
6 if [ $FILE_GOVERNOR ]; then
18 # Find governor's directory path
19 # $1: policy, $2: governor
22 if [ -d $CPUFREQROOT/$2 ]; then
23 printf "$CPUFREQROOT/$2\n"
24 elif [ -d $CPUFREQROOT/$1/$2 ]; then
25 printf "$CPUFREQROOT/$1/$2\n"
32 find_current_governor()
34 cat $CPUFREQROOT/$1/scaling_governor
40 CUR_GOV=$(find_current_governor $1)
42 printf "Governor backup done for $1: $CUR_GOV\n"
44 if [ $CUR_GOV == "userspace" ]; then
45 CUR_FREQ=$(find_current_freq $1)
46 printf "Governor frequency backup done for $1: $CUR_FREQ\n"
55 __switch_governor $1 $CUR_GOV
57 printf "Governor restored for $1 to $CUR_GOV\n"
59 if [ $CUR_GOV == "userspace" ]; then
60 set_cpu_frequency $1 $CUR_FREQ
61 printf "Governor frequency restored for $1: $CUR_FREQ\n"
68 # $1: policy, $2: governor
71 echo $2 > $CPUFREQROOT/$1/scaling_governor
75 # $1: cpu, $2: governor
76 __switch_governor_for_cpu()
78 echo $2 > $CPUROOT/$1/cpufreq/scaling_governor
83 # $1: cpu, $2: governor
86 local filepath=$CPUFREQROOT/$1/scaling_available_governors
88 # check if governor is available
89 local found=$(cat $filepath | grep $2 | wc -l)
90 if [ $found = 0 ]; then
95 __switch_governor $1 $2
99 # $1: policy, $2: governor
100 switch_show_governor()
102 cur_gov=find_current_governor
103 if [ $cur_gov == "userspace" ]; then
104 cur_freq=find_current_freq
108 __switch_governor $1 $2
110 printf "\nSwitched governor for $1 to $2\n\n"
112 if [ $2 == "userspace" -o $2 == "powersave" -o $2 == "performance" ]; then
113 printf "No files to read for $2 governor\n\n"
117 # show governor files
118 local govpath=$(find_gov_directory $1 $2)
119 read_cpufreq_files_in_dir $govpath
122 # $1: function to be called, $2: policy
123 call_for_each_governor()
125 local filepath=$CPUFREQROOT/$2/scaling_available_governors
127 # Exit if cpu isn't managed by cpufreq core
128 if [ ! -f $filepath ]; then
134 local governors=$(cat $filepath)
135 printf "Available governors for $2: $governors\n"
137 for governor in $governors; do
145 shuffle_governors_for_all_cpus()
147 printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n"
149 for i in `seq 1 $1`; do
150 for_each_policy call_for_each_governor switch_show_governor
152 printf "%s\n\n" "------------------------------------------------"