Skip to content

Instantly share code, notes, and snippets.

@Elv13
Created July 2, 2018 21:14
Show Gist options
  • Save Elv13/615727373bbf80ad2971a3b9082ada8a to your computer and use it in GitHub Desktop.
Save Elv13/615727373bbf80ad2971a3b9082ada8a to your computer and use it in GitHub Desktop.
#!/bin/bash
# Max out everything
if [ "$1" == "performance" ]; then
echo performance
for I in `seq 0 7`; do echo performance > /sys/devices/system/cpu/cpu${I}/cpufreq/scaling_governor;done
sudo su -c 'echo 4000 > /sys/class/backlight/intel_backlight/brightness'
sudo rfkill unblock 2
sudo /etc/init.d/NetworkManager start
echo N > /sys/module/workqueue/parameters/power_efficient
#modprobe e1000e # Cause runaway CPU usage in the kernel
for PID in `pidof firefox`; do kill -SIGCONT $PID;done
for PID in `pidof chrome`; do kill -SIGCONT $PID;done
exit
fi
# Do the basic to save energy
echo powersave
echo Y > /sys/module/workqueue/parameters/power_efficient
echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'
echo '1500' > '/proc/sys/vm/dirty_writeback_centisecs'
echo '1' > '/sys/module/snd_hda_intel/parameters/power_save'
for I in `seq 1 5`;do echo 'min_power' > '/sys/class/scsi_host/host'${I}'/link_power_management_policy';done
echo 'auto' > '/sys/bus/usb/devices/1-1.3/power/control'
echo 'auto' > '/sys/bus/i2c/devices/i2c-0/device/power/control';
echo 'on' > '/sys/bus/usb/devices/1-1.5/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:16.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:19.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1b.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.2/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:03:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.4/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:01.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.3/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:03.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:01:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:02:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.1/power/control'
ethtool -s enp0s25 wol d
echo 'auto' > '/sys/bus/usb/devices/1-1.6/power/control'
echo 'auto' > '/sys/bus/usb/devices/usb1/power/control'
echo 'auto' > '/sys/bus/usb/devices/usb2/power/control'
echo 'auto' > '/sys/bus/usb/devices/3-7/power/control'
modprobe bbswitch
# Setting at OFF when it's already OFF cause the power usage to increase
if [ "$(echo /proc/acpi/bbswitch | grep OFF)" == "" ]; then
tee /proc/acpi/bbswitch <<<OFF
fi
for I in `seq 0 7`; do echo powersave > /sys/devices/system/cpu/cpu${I}/cpufreq/scaling_governor;done
rfkill block 0 # bluetooth
# Be abusive
if [ "$1" == "max" ]; then
# Prevent NFS shares from deadlocking everything
sudo umount -l /mnt/*
sudo /etc/init.d/NetworkManager stop
sudo /etc/init.d/rpcbind stop
sudo rfkill block 0
sudo rfkill block 1
sudo rfkill block 2
sudo su -c 'echo 1000 > /sys/class/backlight/intel_backlight/brightness'
# Cause 1 core to max out
#sudo modprobe -r e1000e
fi
# Be abusive, and then some
if [ "$2" == "max" ]; then
for PID in `pidof firefox`; do kill -SIGSTOP $PID;done
for PID in `pidof chrome`; do kill -SIGSTOP $PID;done
sudo su -c 'echo 500 > /sys/class/backlight/intel_backlight/brightness'
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment