Before searching for specific governors, check to see if the scaling_available_governors attribute exists first. It is to add more error handling.
Signed-off-by: Lisa Nguyen lisa.nguyen@linaro.org --- cpufreq/cpufreq_05.sh | 83 +++++++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 38 deletions(-)
diff --git a/cpufreq/cpufreq_05.sh b/cpufreq/cpufreq_05.sh index 862d310..8d37bae 100755 --- a/cpufreq/cpufreq_05.sh +++ b/cpufreq/cpufreq_05.sh @@ -58,51 +58,58 @@ check_governor() { check "'$gov' directory exists" "test -d $GOV_PATH" }
-supported=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors | grep "ondemand") -if [ -z "$supported" ]; then - log_skip "ondemand not supported" -else - for cpu in $cpus; do - switch_ondemand $cpu - done - check_governor $cpu 'ondemand' -fi +scaling_govs=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors) +if [ -n "$scaling_govs" ]; then + supported=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors | grep "ondemand") + if [ -z "$supported" ]; then + log_skip "ondemand not supported" + else + for cpu in $cpus; do + switch_ondemand $cpu + done + check_governor $cpu 'ondemand' + fi
-supported=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors | grep "conservative") -if [ -z "$supported" ]; then - log_skip "conservative not supported" -else - for cpu in $cpus; do - switch_conservative $cpu - done - check_governor $cpu 'conservative' -fi + supported=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors | grep "conservative") + if [ -z "$supported" ]; then + log_skip "conservative not supported" + else + for cpu in $cpus; do + switch_conservative $cpu + done + check_governor $cpu 'conservative' + fi
-supported=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors | grep "userspace") -if [ -z "$supported" ]; then - log_skip "userspace not supported" -else - for cpu in $cpus; do - switch_userspace $cpu - done + supported=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors | grep "userspace") + if [ -z "$supported" ]; then + log_skip "userspace not supported" + else + for cpu in $cpus; do + switch_userspace $cpu + done
check "'ondemand' directory is not there" "test ! -d $CPU_PATH/cpufreq/ondemand" check "'conservative' directory is not there" "test ! -d $CPU_PATH/cpufreq/conservative" -fi + fi
-# if more than one cpu, combine governors -nrcpus=$(ls $CPU_PATH | grep "cpu[0-9].*" | wc -l) -if [ $nrcpus -gt 1 ]; then - affected=$(cat $CPU_PATH/cpu0/cpufreq/affected_cpus | grep 1) - if [ -z $affected ]; then - switch_ondemand cpu0 - switch_conservative cpu1 - check_governor cpu0 'ondemand' - check_governor cpu1 'conservative' - else - log_skip "combine governors not supported" + # if more than one cpu, combine governors + nrcpus=$(ls $CPU_PATH | grep "cpu[0-9].*" | wc -l) + if [ $nrcpus -gt 1 ]; then + affected=$(cat $CPU_PATH/cpu0/cpufreq/affected_cpus | grep 1) + if [ -z $affected ]; then + switch_ondemand cpu0 + switch_conservative cpu1 + check_governor cpu0 'ondemand' + check_governor cpu1 'conservative' + else + log_skip "combine governors not supported" + fi fi + + restore_governors + +else + log_skip "scaling available governors not available" fi
-restore_governors test_status_show