all ktune.sh updated to use common functions file
This commit is contained in:
parent
436f4d234b
commit
93ad579f69
8 changed files with 80 additions and 884 deletions
|
|
@ -1,76 +1,15 @@
|
|||
#!/bin/sh
|
||||
|
||||
VAR_SUBSYS_KTUNE="/var/lock/subsys/ktune"
|
||||
|
||||
ALPM="min_power"
|
||||
|
||||
set_alpm() {
|
||||
for x in /sys/class/scsi_host/*; do
|
||||
if [ -f $x/ahci_port_cmd ]; then
|
||||
port_cmd=`cat $x/ahci_port_cmd`;
|
||||
if [ $((0x$port_cmd & 0x240000)) = 0 -a -f $x/link_power_management_policy ]; then
|
||||
echo $1 >$x/link_power_management_policy;
|
||||
else
|
||||
echo "max_performance" >$x/link_power_management_policy;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
. /etc/tune-profiles/functions
|
||||
|
||||
start() {
|
||||
set_alpm ${ALPM}
|
||||
set_disk_alpm min_power
|
||||
return 0
|
||||
}
|
||||
|
||||
# Disable ALPM for all host adapters that support it
|
||||
stop() {
|
||||
set_alpm "max_performance"
|
||||
set_disk_alpm max_performance
|
||||
return 0
|
||||
}
|
||||
|
||||
# Reload it, just start once more
|
||||
reload() {
|
||||
start
|
||||
}
|
||||
|
||||
# Status
|
||||
status() {
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && exit 0
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|force-reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
RETVAL=2
|
||||
;;
|
||||
esac
|
||||
process $@
|
||||
|
|
|
|||
|
|
@ -1,51 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
VAR_SUBSYS_KTUNE="/var/lock/subsys/ktune"
|
||||
|
||||
CPUSPEED_SAVE_FILE="/var/run/tuned/ktune-cpuspeed.save"
|
||||
CPUSPEED_ORIG_GOV="/var/run/tuned/ktune-cpuspeed-governor-%s.save"
|
||||
CPUSPEED_STARTED="/var/run/tuned/ktune-cpuspeed-started"
|
||||
CPUSPEED_CFG="/etc/sysconfig/cpuspeed"
|
||||
CPUSPEED_INIT="/etc/init.d/cpuspeed"
|
||||
CPUS="$(ls -d1 /sys/devices/system/cpu/cpu* | sed 's;^.*/;;' | grep "cpu[0-9]\+")"
|
||||
|
||||
THP_ENABLE="/sys/kernel/mm/redhat_transparent_hugepage/enabled"
|
||||
THP_SAVE="/var/run/tuned/ktune-thp.save"
|
||||
. /etc/tune-profiles/functions
|
||||
|
||||
start() {
|
||||
# Enable performance CPU governor (prefer cpuspeed), if freq scaling is supported
|
||||
if [ -e $CPUSPEED_INIT ]; then
|
||||
if [ ! -e $CPUSPEED_SAVE_FILE -a -e $CPUSPEED_CFG ]; then
|
||||
cp -p $CPUSPEED_CFG $CPUSPEED_SAVE_FILE
|
||||
sed -e 's/^GOVERNOR=.*/GOVERNOR=performance/g' $CPUSPEED_SAVE_FILE > $CPUSPEED_CFG
|
||||
fi
|
||||
|
||||
service cpuspeed status >/dev/null 2>&1
|
||||
[ $? -eq 3 ] && touch $CPUSPEED_STARTED || rm -f $CPUSPEED_STARTED
|
||||
|
||||
service cpuspeed restart >/dev/null 2>&1
|
||||
elif [ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
|
||||
echo >/dev/stderr
|
||||
echo "Suggestion: install 'cpuspeed' package to get best performance and latency." >/dev/stderr
|
||||
echo "Falling back to 'performance' scaling governor for all CPUs." >/dev/stderr
|
||||
echo >/dev/stderr
|
||||
|
||||
for cpu in $CPUS; do
|
||||
gov_file=/sys/devices/system/cpu/$cpu/cpufreq/scaling_governor
|
||||
save_file=$(printf $CPUSPEED_ORIG_GOV $cpu)
|
||||
rm -f $save_file
|
||||
if [ -e $gov_file ]; then
|
||||
cat $gov_file > $save_file
|
||||
echo performance > $gov_file
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Make sure transparent hugepages are enabled (if supported)
|
||||
if [ -e $THP_ENABLE ]; then
|
||||
cut -f2 -d'[' $THP_ENABLE | cut -f1 -d']' > $THP_SAVE
|
||||
(echo always > $THP_ENABLE) > /dev/null 2>&1
|
||||
fi
|
||||
set_cpu_governor performance
|
||||
enable_transparent_hugepages
|
||||
|
||||
# Find non-root and non-boot partitions, disable barriers on them
|
||||
rootvol=$(df -h / | grep "^/dev" | awk '{print $1}')
|
||||
|
|
@ -53,57 +12,16 @@ start() {
|
|||
volumes=$(df -hl --exclude=tmpfs | grep "^/dev" | awk '{print $1}')
|
||||
|
||||
nobarriervols=$(echo "$volumes" | grep -v $rootvol | grep -v $bootvol)
|
||||
for vol in $nobarriervols
|
||||
do
|
||||
/bin/mount -o remount,nobarrier $vol > /dev/null 2>&1
|
||||
done
|
||||
remount_partitions nobarrier $nobarriervols
|
||||
|
||||
# Increase the readahead value on all volumes
|
||||
readaheadvols=$(ls /sys/block/{sd,cciss}*/queue/read_ahead_kb 2>/dev/null)
|
||||
for d in $readaheadvols
|
||||
do
|
||||
(echo 512 > $d) > /dev/null 2>&1
|
||||
done
|
||||
set_disk_readahead 512
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
# Re-enable previous CPU governor
|
||||
if [ -e $CPUSPEED_INIT ]; then
|
||||
if [ -e $CPUSPEED_SAVE_FILE ]; then
|
||||
cp -fp $CPUSPEED_SAVE_FILE $CPUSPEED_CFG
|
||||
rm -f $CPUSPEED_SAVE_FILE
|
||||
fi
|
||||
|
||||
if [ -e $CPUSPEED_STARTED ]; then
|
||||
rm -f $CPUSPEED_STARTED
|
||||
service cpuspeed stop >/dev/null 2>&1
|
||||
else
|
||||
service cpuspeed restart >/dev/null 2>&1
|
||||
fi
|
||||
elif [ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
|
||||
for cpu in $CPUS; do
|
||||
cpufreq_dir=/sys/devices/system/cpu/$cpu/cpufreq
|
||||
save_file=$(printf $CPUSPEED_ORIG_GOV $cpu)
|
||||
|
||||
if [ -e $cpufreq_dir/scaling_governor ]; then
|
||||
if [ -e $save_file ]; then
|
||||
cat $save_file > $cpufreq_dir/scaling_governor
|
||||
rm -f $save_file
|
||||
else
|
||||
echo userspace > $cpufreq_dir/scaling_governor
|
||||
cat $cpufreq_dir/cpuinfo_max_freq > $cpufreq_dir/scaling_setspeed
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Restore transparent hugepages setting
|
||||
if [ -e $THP_SAVE ]; then
|
||||
(echo $(cat $THP_SAVE) > $THP_ENABLE) > /dev/null 2>&1
|
||||
rm -f $THP_SAVE
|
||||
fi
|
||||
restore_cpu_governor
|
||||
restore_transparent_hugepages
|
||||
|
||||
# Find non-root and non-boot partitions, re-enable barriers
|
||||
rootvol=$(df -h / | grep "^/dev" | awk '{print $1}')
|
||||
|
|
@ -111,61 +29,11 @@ stop() {
|
|||
volumes=$(df -hl --exclude=tmpfs | grep "^/dev" | awk '{print $1}')
|
||||
|
||||
nobarriervols=$(echo "$volumes" | grep -v $rootvol | grep -v $bootvol)
|
||||
for vol in $nobarriervols
|
||||
do
|
||||
/bin/mount -o remount,barrier $vol > /dev/null 2>&1
|
||||
done
|
||||
remount_partitions barrier $nobarriervols
|
||||
|
||||
# Reset default readahead value on all volumes
|
||||
readaheadvols=$(ls /sys/block/{sd,cciss}*/queue/read_ahead_kb 2>/dev/null)
|
||||
for d in $readaheadvols
|
||||
do
|
||||
(echo 128 > $d) > /dev/null 2>&1
|
||||
done
|
||||
set_disk_readahead 128
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
reload() {
|
||||
start
|
||||
}
|
||||
|
||||
status() {
|
||||
return 0
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && exit 0
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|force-reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
RETVAL=2
|
||||
;;
|
||||
esac
|
||||
process $@
|
||||
|
|
|
|||
|
|
@ -1,84 +1,19 @@
|
|||
#!/bin/sh
|
||||
|
||||
VAR_SUBSYS_KTUNE="/var/lock/subsys/ktune"
|
||||
|
||||
ALPM="min_power"
|
||||
|
||||
set_alpm() {
|
||||
for x in /sys/class/scsi_host/*; do
|
||||
if [ -f $x/ahci_port_cmd ]; then
|
||||
port_cmd=`cat $x/ahci_port_cmd`;
|
||||
if [ $((0x$port_cmd & 0x240000)) = 0 -a -f $x/link_power_management_policy ]; then
|
||||
echo $1 >$x/link_power_management_policy;
|
||||
else
|
||||
echo "max_performance" >$x/link_power_management_policy;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
. /etc/tune-profiles/functions
|
||||
|
||||
start() {
|
||||
set_alpm ${ALPM}
|
||||
|
||||
# Enable power saving mode for Wi-Fi cards
|
||||
for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; done > /dev/null 2>&1
|
||||
set_disk_alpm min_power
|
||||
enable_wifi_powersave
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Disable ALPM for all host adapters that support it
|
||||
stop() {
|
||||
set_alpm "max_performance"
|
||||
|
||||
# Reset power saving mode for Wi-Fi cards
|
||||
for i in /sys/bus/pci/devices/*/power_level ; do echo 0 > $i ; done > /dev/null 2>&1
|
||||
set_disk_alpm max_performance
|
||||
disable_wifi_powersave
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Reload it, just start once more
|
||||
reload() {
|
||||
start
|
||||
}
|
||||
|
||||
# Status
|
||||
status() {
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && exit 0
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|force-reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
RETVAL=2
|
||||
;;
|
||||
esac
|
||||
process $@
|
||||
|
|
|
|||
|
|
@ -1,186 +1,31 @@
|
|||
#!/bin/sh
|
||||
|
||||
VAR_SUBSYS_KTUNE="/var/lock/subsys/ktune"
|
||||
|
||||
CPUSPEED_SAVE_FILE="/var/run/tuned/ktune-cpuspeed.save"
|
||||
CPUSPEED_ORIG_GOV="/var/run/tuned/ktune-cpuspeed-governor-%s.save"
|
||||
CPUSPEED_STARTED="/var/run/tuned/ktune-cpuspeed-started"
|
||||
CPUSPEED_CFG="/etc/sysconfig/cpuspeed"
|
||||
CPUSPEED_INIT="/etc/init.d/cpuspeed"
|
||||
CPUS="$(ls -d1 /sys/devices/system/cpu/cpu* | sed 's;^.*/;;' | grep "cpu[0-9]\+")"
|
||||
|
||||
ALPM="min_power"
|
||||
|
||||
set_alpm() {
|
||||
for x in /sys/class/scsi_host/*; do
|
||||
if [ -f $x/ahci_port_cmd ]; then
|
||||
port_cmd=`cat $x/ahci_port_cmd`;
|
||||
if [ $((0x$port_cmd & 0x240000)) = 0 -a -f $x/link_power_management_policy ]; then
|
||||
echo $1 >$x/link_power_management_policy;
|
||||
else
|
||||
echo "max_performance" >$x/link_power_management_policy;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
. /etc/tune-profiles/functions
|
||||
|
||||
start() {
|
||||
# Set ALPM for all host adapters that support it
|
||||
set_alpm ${ALPM}
|
||||
|
||||
# Enables USB autosuspend for all devices
|
||||
#for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done > /dev/null 2>&1
|
||||
|
||||
# Enables multi core power savings for low wakeup systems
|
||||
[ -e /sys/devices/system/cpu/sched_mc_power_savings ] && echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
|
||||
|
||||
# Enable ondemand CPU governor (prefer cpuspeed)
|
||||
if [ -e $CPUSPEED_INIT ]; then
|
||||
if [ ! -e $CPUSPEED_SAVE_FILE -a -e $CPUSPEED_CFG ]; then
|
||||
cp -p $CPUSPEED_CFG $CPUSPEED_SAVE_FILE
|
||||
sed -e 's/^GOVERNOR=.*/GOVERNOR=ondemand/g' $CPUSPEED_SAVE_FILE > $CPUSPEED_CFG
|
||||
fi
|
||||
|
||||
service cpuspeed status >/dev/null 2>&1
|
||||
[ $? -eq 3 ] && touch $CPUSPEED_STARTED || rm -f $CPUSPEED_STARTED
|
||||
|
||||
service cpuspeed restart >/dev/null 2>&1
|
||||
else
|
||||
echo >/dev/stderr
|
||||
echo "Suggestion: install 'cpuspeed' package to get better powersaving results." >/dev/stderr
|
||||
echo "Falling back to 'ondemand' scaling governor for all CPUs." >/dev/stderr
|
||||
echo >/dev/stderr
|
||||
|
||||
for cpu in $CPUS; do
|
||||
gov_file=/sys/devices/system/cpu/$cpu/cpufreq/scaling_governor
|
||||
save_file=$(printf $CPUSPEED_ORIG_GOV $cpu)
|
||||
rm -f $save_file
|
||||
if [ -e $gov_file ]; then
|
||||
cat $gov_file > $save_file
|
||||
echo ondemand > $gov_file
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Enable AC97 audio power saving
|
||||
[ -e /sys/module/snd_ac97_codec/parameters/power_save ] && echo Y > /sys/module/snd_ac97_codec/parameters/power_save
|
||||
|
||||
# Disable HAL polling of CDROMS
|
||||
cddrives=$(command ls -1 /dev/scd* 2>/dev/null)
|
||||
for i in $cddrives; do hal-disable-polling --device $(readlink -f $i); done &>/dev/null
|
||||
|
||||
# Enable power saving mode for Wi-Fi cards
|
||||
for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; done > /dev/null 2>&1
|
||||
|
||||
# Set reduced FSB on EEE PCs with Inte Atom
|
||||
if [ -e /sys/devices/platform/eeepc/she ]; then
|
||||
echo 2 > /sys/devices/platform/eeepc/she
|
||||
elif [ -e /sys/devices/platform/eeepc/cpufv ]; then
|
||||
echo 2 > /sys/devices/platform/eeepc/cpufv
|
||||
fi
|
||||
set_disk_alpm min_power
|
||||
#enable_usb_autosuspend
|
||||
enable_cpu_multicore_powersave
|
||||
set_cpu_governor ondemand
|
||||
enable_snd_ac97_powersave
|
||||
disable_cd_polling
|
||||
enable_wifi_powersave
|
||||
eee_set_reduced_fsb
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
set_alpm "max_performance"
|
||||
|
||||
# Disables USB autosuspend for all devices
|
||||
#for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 0 > $i; done > /dev/null 2>&1
|
||||
|
||||
# Disables multi core power savings for low wakeup systems
|
||||
[ -e /sys/devices/system/cpu/sched_mc_power_savings ] && echo 0 > /sys/devices/system/cpu/sched_mc_power_savings
|
||||
|
||||
# Revert previous CPU governor
|
||||
if [ -e $CPUSPEED_INIT ]; then
|
||||
if [ -e $CPUSPEED_SAVE_FILE ]; then
|
||||
cp -fp $CPUSPEED_SAVE_FILE $CPUSPEED_CFG
|
||||
rm -f $CPUSPEED_SAVE_FILE
|
||||
fi
|
||||
|
||||
if [ -e $CPUSPEED_STARTED ]; then
|
||||
rm -f $CPUSPEED_STARTED
|
||||
service cpuspeed stop >/dev/null 2>&1
|
||||
else
|
||||
service cpuspeed restart >/dev/null 2>&1
|
||||
fi
|
||||
else
|
||||
for cpu in $CPUS; do
|
||||
cpufreq_dir=/sys/devices/system/cpu/$cpu/cpufreq
|
||||
save_file=$(printf $CPUSPEED_ORIG_GOV $cpu)
|
||||
|
||||
if [ -e $cpufreq_dir/scaling_governor ]; then
|
||||
if [ -e $save_file ]; then
|
||||
cat $save_file > $cpufreq_dir/scaling_governor
|
||||
rm -f $save_file
|
||||
else
|
||||
echo userspace > $cpufreq_dir/scaling_governor
|
||||
cat $cpufreq_dir/cpuinfo_max_freq > $cpufreq_dir/scaling_setspeed
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Enable AC97 audio power saving
|
||||
[ -e /sys/module/snd_ac97_codec/parameters/power_save ] && echo Y > /sys/module/snd_ac97_codec/parameters/power_save
|
||||
|
||||
# Enable HAL polling of CDROMS
|
||||
cddrives=$(command ls -1 /dev/scd* 2>/dev/null)
|
||||
for i in $cddrives; do hal-disable-polling --enable-polling --device $(readlink -f $i); done &>/dev/null
|
||||
|
||||
# Reset power saving mode for Wi-Fi cards
|
||||
for i in /sys/bus/pci/devices/*/power_level ; do echo 0 > $i ; done > /dev/null 2>&1
|
||||
|
||||
# Set normal FSB on EEE PCs with Inte Atom
|
||||
if [ -e /sys/devices/platform/eeepc/she ]; then
|
||||
echo 1 > /sys/devices/platform/eeepc/she
|
||||
elif [ -e /sys/devices/platform/eeepc/cpufv ]; then
|
||||
echo 1 > /sys/devices/platform/eeepc/cpufv
|
||||
fi
|
||||
set_disk_alpm max_performance
|
||||
#disable_usb_autosuspend
|
||||
disable_cpu_multicore_power_savings
|
||||
restore_cpu_scheduler
|
||||
enable_snd_ac97_powersave
|
||||
enable_cd_polling
|
||||
disable_wifi_powersave
|
||||
eee_set_normal_fsb
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
reload() {
|
||||
start
|
||||
}
|
||||
|
||||
status() {
|
||||
return 0
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && exit 0
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|force-reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
RETVAL=2
|
||||
;;
|
||||
esac
|
||||
process $@
|
||||
|
|
|
|||
|
|
@ -1,120 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
VAR_SUBSYS_KTUNE="/var/lock/subsys/ktune"
|
||||
|
||||
CPUSPEED_SAVE_FILE="/var/run/tuned/ktune-cpuspeed.save"
|
||||
CPUSPEED_ORIG_GOV="/var/run/tuned/ktune-cpuspeed-governor-%s.save"
|
||||
CPUSPEED_STARTED="/var/run/tuned/ktune-cpuspeed-started"
|
||||
CPUSPEED_CFG="/etc/sysconfig/cpuspeed"
|
||||
CPUSPEED_INIT="/etc/init.d/cpuspeed"
|
||||
CPUS="$(ls -d1 /sys/devices/system/cpu/cpu* | sed 's;^.*/;;' | grep "cpu[0-9]\+")"
|
||||
. /etc/tune-profiles/functions
|
||||
|
||||
start() {
|
||||
# Enable performance CPU governor (prefer cpuspeed)
|
||||
if [ -e $CPUSPEED_INIT ]; then
|
||||
if [ ! -e $CPUSPEED_SAVE_FILE -a -e $CPUSPEED_CFG ]; then
|
||||
cp -p $CPUSPEED_CFG $CPUSPEED_SAVE_FILE
|
||||
sed -e 's/^GOVERNOR=.*/GOVERNOR=performance/g' $CPUSPEED_SAVE_FILE > $CPUSPEED_CFG
|
||||
fi
|
||||
|
||||
service cpuspeed status >/dev/null 2>&1
|
||||
[ $? -eq 3 ] && touch $CPUSPEED_STARTED || rm -f $CPUSPEED_STARTED
|
||||
|
||||
service cpuspeed restart >/dev/null 2>&1
|
||||
else
|
||||
echo >/dev/stderr
|
||||
echo "Suggestion: install 'cpuspeed' package to get best performance and latency." >/dev/stderr
|
||||
echo "Falling back to 'performance' scaling governor for all CPUs." >/dev/stderr
|
||||
echo >/dev/stderr
|
||||
|
||||
for cpu in $CPUS; do
|
||||
gov_file=/sys/devices/system/cpu/$cpu/cpufreq/scaling_governor
|
||||
save_file=$(printf $CPUSPEED_ORIG_GOV $cpu)
|
||||
rm -f $save_file
|
||||
if [ -e $gov_file ]; then
|
||||
cat $gov_file > $save_file
|
||||
echo performance > $gov_file
|
||||
fi
|
||||
done
|
||||
fi
|
||||
set_cpu_governor performance
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
# Re-enable previous CPU governor
|
||||
if [ -e $CPUSPEED_INIT ]; then
|
||||
if [ -e $CPUSPEED_SAVE_FILE ]; then
|
||||
cp -fp $CPUSPEED_SAVE_FILE $CPUSPEED_CFG
|
||||
rm -f $CPUSPEED_SAVE_FILE
|
||||
fi
|
||||
|
||||
if [ -e $CPUSPEED_STARTED ]; then
|
||||
rm -f $CPUSPEED_STARTED
|
||||
service cpuspeed stop >/dev/null 2>&1
|
||||
else
|
||||
service cpuspeed restart >/dev/null 2>&1
|
||||
fi
|
||||
else
|
||||
for cpu in $CPUS; do
|
||||
cpufreq_dir=/sys/devices/system/cpu/$cpu/cpufreq
|
||||
save_file=$(printf $CPUSPEED_ORIG_GOV $cpu)
|
||||
|
||||
if [ -e $cpufreq_dir/scaling_governor ]; then
|
||||
if [ -e $save_file ]; then
|
||||
cat $save_file > $cpufreq_dir/scaling_governor
|
||||
rm -f $save_file
|
||||
else
|
||||
echo userspace > $cpufreq_dir/scaling_governor
|
||||
cat $cpufreq_dir/cpuinfo_max_freq > $cpufreq_dir/scaling_setspeed
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
restore_cpu_governor
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
reload() {
|
||||
start
|
||||
}
|
||||
|
||||
status() {
|
||||
return 0
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && exit 0
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|force-reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
RETVAL=2
|
||||
;;
|
||||
esac
|
||||
process $@
|
||||
|
|
|
|||
|
|
@ -1,85 +1,19 @@
|
|||
#!/bin/sh
|
||||
|
||||
VAR_SUBSYS_KTUNE="/var/lock/subsys/ktune"
|
||||
|
||||
ALPM="min_power"
|
||||
|
||||
set_alpm() {
|
||||
for x in /sys/class/scsi_host/*; do
|
||||
if [ -f $x/ahci_port_cmd ]; then
|
||||
port_cmd=`cat $x/ahci_port_cmd`;
|
||||
if [ $((0x$port_cmd & 0x240000)) = 0 -a -f $x/link_power_management_policy ]; then
|
||||
echo $1 >$x/link_power_management_policy;
|
||||
else
|
||||
echo "max_performance" >$x/link_power_management_policy;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
. /etc/tune-profiles/functions
|
||||
|
||||
start() {
|
||||
set_alpm ${ALPM}
|
||||
|
||||
# Disable HAL polling of CDROMS
|
||||
cddrives=$(command ls -1 /dev/scd* 2>/dev/null)
|
||||
for i in $cddrives; do hal-disable-polling --device $(readlink -f $i); done &>/dev/null
|
||||
set_disk_alpm min_power
|
||||
disable_cd_polling
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
set_alpm "max_performance"
|
||||
|
||||
# Enable HAL polling of CDROMS
|
||||
cddrives=$(command ls -1 /dev/scd* 2>/dev/null)
|
||||
for i in $cddrives; do hal-disable-polling --enable-polling --device $(readlink -f $i); done &>/dev/null
|
||||
set_disk_alpm max_performance
|
||||
enable_cd_polling
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Reload it, just start once more
|
||||
reload() {
|
||||
start
|
||||
}
|
||||
|
||||
# Status
|
||||
status() {
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && exit 0
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|force-reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
RETVAL=2
|
||||
;;
|
||||
esac
|
||||
process $@
|
||||
|
|
|
|||
|
|
@ -1,146 +1,40 @@
|
|||
#!/bin/sh
|
||||
# Author of original script: Daniel Mach
|
||||
# Rewrite into profiles by: Marcela Mašláňová
|
||||
|
||||
VAR_SUBSYS_KTUNE="/var/lock/subsys/ktune"
|
||||
. /etc/tune-profiles/functions
|
||||
|
||||
ALPM="medium_power"
|
||||
|
||||
# Set ALPM for all host adapters that support it
|
||||
set_alpm() {
|
||||
for x in /sys/bus/scsi/devices/host*/scsi_host/host*/; do
|
||||
hotplug="0"
|
||||
if [ -e $x/sata_hotplug ]; then
|
||||
hotplug="$(cat $x/sata_hotplug)"
|
||||
fi
|
||||
if [ "$hotplug" == "0" -a -e $x/link_power_management_policy ]; then
|
||||
echo $1 > $x/link_power_management_policy
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
remount() {
|
||||
OPTS=$1
|
||||
|
||||
mount | grep 'type ext3 (' | while read LINE; do
|
||||
DEV=$(echo $LINE | sed 's@^\(.*\) on .* type .*$@\1@')
|
||||
MNT=$(echo $LINE | sed 's@^.* on \(.*\) type .*$@\1@')
|
||||
mount -o remount,$1 $DEV $MNT
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
hdd_apm() {
|
||||
APM=$1
|
||||
|
||||
for DEV in /dev/[sh]d[a-z]; do
|
||||
hdparm -B $APM $DEV >/dev/null 2>&1
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
hdd_spindown() {
|
||||
SPINDOWN=$1
|
||||
|
||||
for DEV in /dev/[sh]d[a-z]; do
|
||||
hdparm -S $SPINDOWN $DEV >/dev/null 2>&1
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
wireless_powersave() {
|
||||
POWER=$1
|
||||
|
||||
IFACES=$(cat /proc/net/wireless | grep -v '|' | sed 's@^ *\([^:]*\):.*@\1@')
|
||||
for IFACE in $IFACES; do
|
||||
iwpriv $IFACE set_power $POWER
|
||||
done
|
||||
}
|
||||
|
||||
dont_sync_logs() {
|
||||
cp -p /etc/rsyslog.conf /etc/rsyslog.conf.bckp
|
||||
sed 's/ \/var\/log/-\/var\/log/' /etc/rsyslog.conf.bckp > /etc/rsyslog.conf
|
||||
}
|
||||
|
||||
revert_logs() {
|
||||
mv /etc/rsyslog.conf.bckp /etc/rsyslog.conf
|
||||
}
|
||||
EXT_PARTITIONS=$(mount | grep -E "type ext(3|4)" | cut -d" " -f1)
|
||||
|
||||
start() {
|
||||
# redirect cron to tty8 isn't probably needed anymore
|
||||
set_disk_alpm medium_power
|
||||
set_disk_apm 128
|
||||
set_disk_spindown 6
|
||||
|
||||
set_alpm ${ALPM}
|
||||
# Enables USB autosuspend for all devices
|
||||
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done
|
||||
# Disable HAL polling of CDROMS
|
||||
cddrives=$(command ls -1 /dev/scd* 2>/dev/null)
|
||||
for i in $cddrives; do hal-disable-polling --device $(readlink -f $i); done &>/dev/null
|
||||
hciconfig hci0 down; modprobe -r hci_usb
|
||||
dont_sync_logs
|
||||
wireless_powersave 1
|
||||
hdd_spindown 6
|
||||
hdd_apm 128
|
||||
remount commit=600,noatime
|
||||
find /etc/ >/dev/null 2>&1
|
||||
enable_usb_autosuspend
|
||||
disable_cd_polling
|
||||
disable_bluetooth
|
||||
enable_wifi_powersave
|
||||
disable_logs_syncing
|
||||
|
||||
remount_partitions commit=600,noatime $EXT_PARTITIONS
|
||||
find /etc/ &> /dev/null
|
||||
sync
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Disable ALPM for all host adapters that support it
|
||||
stop() {
|
||||
set_alpm "max_power"
|
||||
modprobe hci_usb; hciconfig hci0 up
|
||||
wireless_powersave 0
|
||||
revert_logs
|
||||
hdd_spindown 0
|
||||
hdd_apm 255
|
||||
remount commit=5
|
||||
set_disk_alpm max_power
|
||||
set_disk_apm 255
|
||||
set_disk_spindown 0
|
||||
|
||||
disable_usb_autosuspend
|
||||
enable_bluetooth
|
||||
disable_wifi_powersave
|
||||
restore_logs_syncing
|
||||
|
||||
remount_partitions commit=5 $EXT_PARTITIONS
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Reload it, just start once more
|
||||
reload() {
|
||||
start
|
||||
}
|
||||
|
||||
# Status
|
||||
status() {
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && exit 0
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|force-reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
RETVAL=2
|
||||
;;
|
||||
esac
|
||||
process $@
|
||||
|
|
|
|||
|
|
@ -1,135 +1,19 @@
|
|||
#!/bin/sh
|
||||
|
||||
VAR_SUBSYS_KTUNE="/var/lock/subsys/ktune"
|
||||
|
||||
CPUSPEED_SAVE_FILE="/var/run/tuned/ktune-cpuspeed.save"
|
||||
CPUSPEED_ORIG_GOV="/var/run/tuned/ktune-cpuspeed-governor-%s.save"
|
||||
CPUSPEED_STARTED="/var/run/tuned/ktune-cpuspeed-started"
|
||||
CPUSPEED_CFG="/etc/sysconfig/cpuspeed"
|
||||
CPUSPEED_INIT="/etc/init.d/cpuspeed"
|
||||
CPUS="$(ls -d1 /sys/devices/system/cpu/cpu* | sed 's;^.*/;;' | grep "cpu[0-9]\+")"
|
||||
|
||||
THP_ENABLE="/sys/kernel/mm/redhat_transparent_hugepage/enabled"
|
||||
THP_SAVE="/var/run/tuned/ktune-thp.save"
|
||||
. /etc/tune-profiles/functions
|
||||
|
||||
start() {
|
||||
# Enable performance CPU governor (prefer cpuspeed), if freq scaling is supported
|
||||
if [ -e $CPUSPEED_INIT ]; then
|
||||
if [ ! -e $CPUSPEED_SAVE_FILE -a -e $CPUSPEED_CFG ]; then
|
||||
cp -p $CPUSPEED_CFG $CPUSPEED_SAVE_FILE
|
||||
sed -e 's/^GOVERNOR=.*/GOVERNOR=performance/g' $CPUSPEED_SAVE_FILE > $CPUSPEED_CFG
|
||||
fi
|
||||
|
||||
service cpuspeed status >/dev/null 2>&1
|
||||
[ $? -eq 3 ] && touch $CPUSPEED_STARTED || rm -f $CPUSPEED_STARTED
|
||||
|
||||
service cpuspeed restart >/dev/null 2>&1
|
||||
elif [ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
|
||||
echo >/dev/stderr
|
||||
echo "Suggestion: install 'cpuspeed' package to get best performance and latency." >/dev/stderr
|
||||
echo "Falling back to 'performance' scaling governor for all CPUs." >/dev/stderr
|
||||
echo >/dev/stderr
|
||||
|
||||
for cpu in $CPUS; do
|
||||
gov_file=/sys/devices/system/cpu/$cpu/cpufreq/scaling_governor
|
||||
save_file=$(printf $CPUSPEED_ORIG_GOV $cpu)
|
||||
rm -f $save_file
|
||||
if [ -e $gov_file ]; then
|
||||
cat $gov_file > $save_file
|
||||
echo performance > $gov_file
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Make sure transparent hugepages are enabled (if supported)
|
||||
if [ -e $THP_ENABLE ]; then
|
||||
cut -f2 -d'[' $THP_ENABLE | cut -f1 -d']' > $THP_SAVE
|
||||
(echo always > $THP_ENABLE) > /dev/null 2>&1
|
||||
fi
|
||||
set_cpu_governor performance
|
||||
enable_transparent_hugepages
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
# Re-enable previous CPU governor
|
||||
if [ -e $CPUSPEED_INIT ]; then
|
||||
if [ -e $CPUSPEED_SAVE_FILE ]; then
|
||||
cp -fp $CPUSPEED_SAVE_FILE $CPUSPEED_CFG
|
||||
rm -f $CPUSPEED_SAVE_FILE
|
||||
fi
|
||||
|
||||
if [ -e $CPUSPEED_STARTED ]; then
|
||||
rm -f $CPUSPEED_STARTED
|
||||
service cpuspeed stop >/dev/null 2>&1
|
||||
else
|
||||
service cpuspeed restart >/dev/null 2>&1
|
||||
fi
|
||||
elif [ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
|
||||
for cpu in $CPUS; do
|
||||
cpufreq_dir=/sys/devices/system/cpu/$cpu/cpufreq
|
||||
save_file=$(printf $CPUSPEED_ORIG_GOV $cpu)
|
||||
|
||||
if [ -e $cpufreq_dir/scaling_governor ]; then
|
||||
if [ -e $save_file ]; then
|
||||
cat $save_file > $cpufreq_dir/scaling_governor
|
||||
rm -f $save_file
|
||||
else
|
||||
echo userspace > $cpufreq_dir/scaling_governor
|
||||
cat $cpufreq_dir/cpuinfo_max_freq > $cpufreq_dir/scaling_setspeed
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Restore transparent hugepages setting
|
||||
if [ -e $THP_SAVE ]; then
|
||||
(echo $(cat $THP_SAVE) > $THP_ENABLE) > /dev/null 2>&1
|
||||
rm -f $THP_SAVE
|
||||
fi
|
||||
restore_cpu_governor
|
||||
restore_transparent_hugepages
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
reload() {
|
||||
start
|
||||
}
|
||||
|
||||
status() {
|
||||
return 0
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && exit 0
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|force-reload)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] && stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
[ -f "$VAR_SUBSYS_KTUNE" ] || exit 0
|
||||
stop
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||
RETVAL=2
|
||||
;;
|
||||
esac
|
||||
process $@
|
||||
|
|
|
|||
Loading…
Reference in a new issue