diff -u sysvinit-2.88dsf/debian/changelog sysvinit-2.88dsf/debian/changelog --- sysvinit-2.88dsf/debian/changelog +++ sysvinit-2.88dsf/debian/changelog @@ -1,3 +1,12 @@ +sysvinit (2.88dsf-13.10ubuntu14) raring; urgency=low + + * Twiddle /etc/init.d/ondemand to prefer the "interactive" governor + over the ondemand one, which improves responsiveness on devices + that have a kernel that support this feature (such as the nexus7). + * Also, exit more gracefully if we have no governors available to us. + + -- Adam Conrad Fri, 07 Dec 2012 04:48:13 -0700 + sysvinit (2.88dsf-13.10ubuntu13) quantal; urgency=low * Add version guard to previous postinst change. diff -u sysvinit-2.88dsf/debian/src/initscripts/etc/init.d/ondemand sysvinit-2.88dsf/debian/src/initscripts/etc/init.d/ondemand --- sysvinit-2.88dsf/debian/src/initscripts/etc/init.d/ondemand +++ sysvinit-2.88dsf/debian/src/initscripts/etc/init.d/ondemand @@ -14,6 +14,8 @@ . /lib/init/vars.sh . /lib/lsb/init-functions +AVAILABLE="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors" + case "$1" in start) start-stop-daemon --start --background --exec /etc/init.d/ondemand -- background @@ -21,10 +23,26 @@ background) sleep 60 # probably enough time for desktop login + [ -f $AVAILABLE ] || exit 0 + read governors < $AVAILABLE + case $governors in + *interactive*) + GOVERNOR="interactive" + break + ;; + *ondemand*) + GOVERNOR="ondemand" + break + ;; + *) + exit 0 + ;; + esac + for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor do [ -f $CPUFREQ ] || continue - echo -n ondemand > $CPUFREQ + echo -n $GOVERNOR > $CPUFREQ done ;; restart|reload|force-reload)