summaryrefslogtreecommitdiff
path: root/pm
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2007-01-02 16:44:51 +0000
committerPeter Jones <pjones@redhat.com>2007-01-02 16:44:51 +0000
commit3c086a1670d928452b009a9e1269af0ab1b956b7 (patch)
tree9f3a38f8e71cfb51a1729d81d84b0f1931e4a050 /pm
parent5ea0c449249186457d3cccda5dd1eaafa71806a1 (diff)
- Set scheduler policy for different power states
Diffstat (limited to 'pm')
-rw-r--r--pm/power.d/Makefile.am3
-rw-r--r--pm/power.d/sched-powersave31
2 files changed, 33 insertions, 1 deletions
diff --git a/pm/power.d/Makefile.am b/pm/power.d/Makefile.am
index 275e13b..6f63ad8 100644
--- a/pm/power.d/Makefile.am
+++ b/pm/power.d/Makefile.am
@@ -1,7 +1,8 @@
powerdir = $(sysconfdir)/pm/power.d
power_SCRIPTS = \
- laptop-tools
+ laptop-tools \
+ sched-powersave
EXTRA_DIST=$(power_SCRIPTS)
diff --git a/pm/power.d/sched-powersave b/pm/power.d/sched-powersave
new file mode 100644
index 0000000..9371d50
--- /dev/null
+++ b/pm/power.d/sched-powersave
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+path_mc="/sys/devices/system/cpu/sched_mc_power_savings"
+path_smp="/sys/devices/system/cpu/sched_smp_power_savings"
+val=0
+
+case "$1" in
+ true)
+ echo "**sched policy powersave ON"
+ val=1
+ ;;
+ false)
+ echo "**sched policy powersave OFF"
+ val=0
+ ;;
+esac
+
+# Based on the values (1-enable, 0-disable) for these controls,
+# sched groups cpu power will be determined for different domains.
+# When power savings policy is enabled and under light load conditions,
+# scheduler will minimize the physical packages/cpu cores carrying the
+# load and thus conserving power
+
+if [ -w "$path_mc" ] ; then
+ echo $val > $path_mc
+fi
+if [ -w "$path_smp" ] ; then
+ echo $val > $path_smp
+fi
+
+exit 0