summaryrefslogtreecommitdiff
path: root/community/linux-tools/cpupower.rc
diff options
context:
space:
mode:
Diffstat (limited to 'community/linux-tools/cpupower.rc')
-rw-r--r--community/linux-tools/cpupower.rc32
1 files changed, 21 insertions, 11 deletions
diff --git a/community/linux-tools/cpupower.rc b/community/linux-tools/cpupower.rc
index 812637b61..9b0bcddb7 100644
--- a/community/linux-tools/cpupower.rc
+++ b/community/linux-tools/cpupower.rc
@@ -8,19 +8,29 @@
case "$1" in
start|restart)
stat_busy "Setting cpupower rules"
+ declare -i fail=0
- declare params=''
- if [[ "$governor" ]]; then
- params="-g $governor "
- params+="${min_freq:+-d $min_freq} "
- params+="${max_freq:+-u $max_freq} "
- params+="${freq:+-f $freq} "
- cpupower frequency-set $params >/dev/null || { stat_fail; exit 1; }
- stat_done
- else
- stat_append ': Invalid configuration'
- stat_fail
+ # frequency-set options
+ declare -a params=()
+ params+=(${governor:+-g $governor})
+ params+=(${min_freq:+-d $min_freq})
+ params+=(${max_freq:+-u $max_freq})
+ params+=(${freq:+-f $freq})
+ if ((${#params[@]} > 0)); then
+ cpupower frequency-set "${params[@]}" >/dev/null || fail=1
fi
+
+ # set options
+ declare -a params=()
+ params+=(${mc_scheduler:+-m $mc_scheduler})
+ params+=(${smp_scheduler:+-s $smp_scheduler})
+ params+=(${perf_bias:+-b $perf_bias})
+ if ((${#params[@]} > 0)); then
+ cpupower set "${params[@]}" >/dev/null || fail=1
+ fi
+
+ # print failure if any
+ (($fail > 0)) && stat_fail && exit 1 || stat_done
;;
*)
echo "usage: $0 {start|restart}"