summaryrefslogtreecommitdiff
path: root/community-staging/linux-tools/cpupower.rc
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-05-26 00:02:35 +0000
committerroot <root@rshg054.dnsready.net>2012-05-26 00:02:35 +0000
commita5721a07196cf00c26ea1bfb651aab756d202ccb (patch)
treeb60f984dd22f98544c8d2fd9526cc24dea3dcd25 /community-staging/linux-tools/cpupower.rc
parentaa30737839de3c2a4a1287442cb9859414fb4b0a (diff)
Sat May 26 00:02:35 UTC 2012
Diffstat (limited to 'community-staging/linux-tools/cpupower.rc')
-rw-r--r--community-staging/linux-tools/cpupower.rc41
1 files changed, 41 insertions, 0 deletions
diff --git a/community-staging/linux-tools/cpupower.rc b/community-staging/linux-tools/cpupower.rc
new file mode 100644
index 000000000..27a491e95
--- /dev/null
+++ b/community-staging/linux-tools/cpupower.rc
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[[ -f /etc/conf.d/cpupower ]] && . /etc/conf.d/cpupower
+
+case "$1" in
+ start|restart)
+ stat_busy "Setting cpupower rules"
+ declare -i fail=0
+
+ # 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}"
+esac
+
+true
+
+# vim:set ts=2 sw=2 ft=sh et: