From 93ad579f6953261ce7bc6c34f0ca4cb9d3c8b33d Mon Sep 17 00:00:00 2001 From: Jan Vcelak Date: Wed, 22 Dec 2010 15:34:13 +0100 Subject: [PATCH] all ktune.sh updated to use common functions file --- tune-profiles/desktop-powersave/ktune.sh | 69 +------ tune-profiles/enterprise-storage/ktune.sh | 152 +------------- tune-profiles/laptop-ac-powersave/ktune.sh | 77 +------ .../laptop-battery-powersave/ktune.sh | 191 ++---------------- tune-profiles/latency-performance/ktune.sh | 111 +--------- tune-profiles/server-powersave/ktune.sh | 78 +------ tune-profiles/spindown-disk/ktune.sh | 158 +++------------ tune-profiles/throughput-performance/ktune.sh | 128 +----------- 8 files changed, 80 insertions(+), 884 deletions(-) diff --git a/tune-profiles/desktop-powersave/ktune.sh b/tune-profiles/desktop-powersave/ktune.sh index 4e4dba7..fba932f 100755 --- a/tune-profiles/desktop-powersave/ktune.sh +++ b/tune-profiles/desktop-powersave/ktune.sh @@ -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 $@ diff --git a/tune-profiles/enterprise-storage/ktune.sh b/tune-profiles/enterprise-storage/ktune.sh index 62c7f9a..3cc7527 100755 --- a/tune-profiles/enterprise-storage/ktune.sh +++ b/tune-profiles/enterprise-storage/ktune.sh @@ -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 $@ diff --git a/tune-profiles/laptop-ac-powersave/ktune.sh b/tune-profiles/laptop-ac-powersave/ktune.sh index 36bc536..475e931 100755 --- a/tune-profiles/laptop-ac-powersave/ktune.sh +++ b/tune-profiles/laptop-ac-powersave/ktune.sh @@ -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 $@ diff --git a/tune-profiles/laptop-battery-powersave/ktune.sh b/tune-profiles/laptop-battery-powersave/ktune.sh index a71519f..74aee2b 100755 --- a/tune-profiles/laptop-battery-powersave/ktune.sh +++ b/tune-profiles/laptop-battery-powersave/ktune.sh @@ -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 $@ diff --git a/tune-profiles/latency-performance/ktune.sh b/tune-profiles/latency-performance/ktune.sh index 372801e..afb12e2 100755 --- a/tune-profiles/latency-performance/ktune.sh +++ b/tune-profiles/latency-performance/ktune.sh @@ -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 $@ diff --git a/tune-profiles/server-powersave/ktune.sh b/tune-profiles/server-powersave/ktune.sh index f9537ef..5cee4c0 100755 --- a/tune-profiles/server-powersave/ktune.sh +++ b/tune-profiles/server-powersave/ktune.sh @@ -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 $@ diff --git a/tune-profiles/spindown-disk/ktune.sh b/tune-profiles/spindown-disk/ktune.sh index cd395a5..c131bc7 100755 --- a/tune-profiles/spindown-disk/ktune.sh +++ b/tune-profiles/spindown-disk/ktune.sh @@ -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 $@ diff --git a/tune-profiles/throughput-performance/ktune.sh b/tune-profiles/throughput-performance/ktune.sh index 5ebce31..168aecc 100755 --- a/tune-profiles/throughput-performance/ktune.sh +++ b/tune-profiles/throughput-performance/ktune.sh @@ -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 $@