38 lines
1 KiB
Bash
38 lines
1 KiB
Bash
#! /bin/sh
|
|
# Set the CPU Frequency Scaling governor to "performance"/"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/performance/sampling_down_factor"
|
|
|
|
[ -f $AVAILABLE ] || exit 0
|
|
|
|
read governors < $AVAILABLE
|
|
case $governors in
|
|
*performance*)
|
|
GOVERNOR="performance"
|
|
case $(uname -m) in
|
|
ppc64*)
|
|
SAMPLING=100
|
|
;;
|
|
esac
|
|
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
|