summaryrefslogtreecommitdiffstats
path: root/debian/extra/set-cpufreq
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:25:51 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:25:51 +0000
commitac8399db6ce846597966360732ce6d39a247bdd2 (patch)
tree046a28d2cbd02afa147291e8f69e9bb5dc29f1aa /debian/extra/set-cpufreq
parentAdding upstream version 241. (diff)
downloadsystemd-debian.tar.xz
systemd-debian.zip
Adding debian version 241-7~deb10u8.debian/241-7_deb10u8debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/extra/set-cpufreq')
-rwxr-xr-xdebian/extra/set-cpufreq46
1 files changed, 46 insertions, 0 deletions
diff --git a/debian/extra/set-cpufreq b/debian/extra/set-cpufreq
new file mode 100755
index 0000000..4ffe126
--- /dev/null
+++ b/debian/extra/set-cpufreq
@@ -0,0 +1,46 @@
+#! /bin/sh
+# Set the CPU Frequency Scaling governor to "ondemand"/"powersave" where available
+set -eu
+
+FIRSTCPU=`cut -f1 -d- /sys/devices/system/cpu/online`
+AVAILABLE="/sys/devices/system/cpu/cpu$FIRSTCPU/cpufreq/scaling_available_governors"
+DOWN_FACTOR="/sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor"
+
+[ -f $AVAILABLE ] || exit 0
+
+read governors < $AVAILABLE
+case $governors in
+ *interactive*)
+ GOVERNOR="interactive"
+ break
+ ;;
+ *ondemand*)
+ GOVERNOR="ondemand"
+ case $(uname -m) in
+ ppc64*)
+ SAMPLING=100
+ ;;
+ esac
+ break
+ ;;
+ *powersave*)
+ GOVERNOR="powersave"
+ break
+ ;;
+ *)
+ exit 0
+ ;;
+esac
+
+[ -n "${GOVERNOR:-}" ] || exit 0
+
+echo "Setting $GOVERNOR scheduler for all CPUs"
+
+for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
+do
+ [ -f $CPUFREQ ] || continue
+ echo -n $GOVERNOR > $CPUFREQ
+done
+if [ -n "${SAMPLING:-}" ] && [ -f $DOWN_FACTOR ]; then
+ echo -n $SAMPLING > $DOWN_FACTOR
+fi