slackware-current/source/a/sysvinit-scripts/scripts/rc.cpufreq
Patrick J Volkerding 6e50489fed Fri Apr 23 19:13:09 UTC 2021
a/pkgtools-15.0-noarch-39.txz:  Rebuilt.
  upgradepkg: revert change where $ROOT/sbin/installpkg is called instead of
  /sbin/installpkg. Conceptually, this seemed like a nice change (but would
  have also required removepkg to be called the same way), but it seems to
  break an established expectation that the pkgtools can be used without them
  actually being installed in $ROOT. Thanks to alienBOB.
a/sysvinit-scripts-15.0-noarch-2.txz:  Rebuilt.
  Use #!/bin/bash for these scripts so that bashisms don't cause script issues
  if /bin/sh is some other shell. Thanks to mumahendras3.
  rc.S: Use GazL's proposals for detecting/mounting /proc and /sys.
d/parallel-20210422-noarch-1.txz:  Upgraded.
l/glib-networking-2.68.1-x86_64-1.txz:  Upgraded.
l/gtk+3-3.24.29-x86_64-1.txz:  Upgraded.
x/igt-gpu-tools-1.26-x86_64-1.txz:  Upgraded.
isolinux/initrd.img:  Rebuilt.
  Rebuild with pkgtools-15.0-noarch-39.
usb-and-pxe-installers/usbboot.img:  Rebuilt.
  Rebuild with pkgtools-15.0-noarch-39.
2021-04-24 08:59:55 +02:00

66 lines
3.3 KiB
Bash

#!/bin/bash
#
# rc.cpufreq: Settings for CPU frequency and voltage scaling in the kernel.
# For more information, see the kernel documentation in
# /usr/src/linux/Documentation/cpu-freq/
# Default CPU scaling governor to try. Some possible choices are:
# performance: The CPUfreq governor "performance" sets the CPU statically
# to the highest frequency within the borders of scaling_min_freq
# and scaling_max_freq.
# powersave: The CPUfreq governor "powersave" sets the CPU statically to the
# lowest frequency within the borders of scaling_min_freq and
# scaling_max_freq.
# userspace: The CPUfreq governor "userspace" allows the user, or any
# userspace program running with UID "root", to set the CPU to a
# specific frequency by making a sysfs file "scaling_setspeed"
# available in the CPU-device directory.
# ondemand: The CPUfreq governor "ondemand" sets the CPU depending on the
# current usage.
# conservative: The CPUfreq governor "conservative", much like the "ondemand"
# governor, sets the CPU depending on the current usage. It
# differs in behaviour in that it gracefully increases and
# decreases the CPU speed rather than jumping to max speed the
# moment there is any load on the CPU.
# schedutil: The CPUfreq governor "schedutil" aims at better integration with
# the Linux kernel scheduler. Load estimation is achieved through
# the scheduler's Per-Entity Load Tracking (PELT) mechanism, which
# also provides information about the recent load.
SCALING_GOVERNOR=ondemand
# For CPUs using intel_pstate, always use the performance governor. This also
# provides power savings on Intel processors while avoiding the ramp-up lag
# present when using the powersave governor (which is the default if ondemand
# is requested on these machines):
if [ "$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 2> /dev/null)" = "intel_pstate" ]; then
SCALING_GOVERNOR="performance"
fi
# If rc.cpufreq is given an option, use it for the CPU scaling governor instead:
if [ ! -z "$1" -a "$1" != "start" ]; then
SCALING_GOVERNOR=$1
fi
# To force a particular option without having to edit this file, uncomment the
# line in /etc/default/cpufreq and edit it to select the desired option:
if [ -r /etc/default/cpufreq ]; then
. /etc/default/cpufreq
fi
# If you need to load a specific CPUFreq driver, load it here. Most likely you don't.
#/sbin/modprobe acpi-cpufreq
# Attempt to apply the CPU scaling governor setting. This may or may not
# actually override the default value depending on if the choice is supported
# by the architecture, processor, or underlying CPUFreq driver. For example,
# processors that use the Intel P-state driver will only be able to set
# performance or powersave here.
echo $SCALING_GOVERNOR | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 1> /dev/null 2> /dev/null
# Report what CPU scaling governor is in use after applying the setting:
if [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
echo "Enabled CPU frequency scaling governor: $(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)"
fi
unset SCALING_GOVERNOR