1

I'm using the cpufreq gnome extension. I manually set it to performance and, within a minute or so, it reverts to powersave. Anyone know what's going on behind the scenes?

Output of cat /etc/init.d/cpufrequtils

#!/bin/sh
### BEGIN INIT INFO
# Provides:       cpufrequtils
# Required-Start: $remote_fs loadcpufreq
# Required-Stop:
# Default-Start:  2 3 4 5
# Default-Stop:
# Short-Description: set CPUFreq kernel parameters
# Description: utilities to deal with CPUFreq Linux 
#   kernel support
### END INIT INFO
# 

DESC="CPUFreq Utilities"

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin CPUFREQ_SET=/usr/bin/cpufreq-set CPUFREQ_INFO=/usr/bin/cpufreq-info CPUFREQ_OPTIONS=""

# use lsb-base . /lib/lsb/init-functions

# Which governor to use. Must be one of the governors listed in:
#   cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
#
# and which limits to set. Both MIN_SPEED and MAX_SPEED must be values
# listed in:
#   cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
# a value of 0 for any of the two variables will disabling the use of 
# that limit variable.
#
# WARNING: the correct kernel module must already be loaded or compiled in.
# 
# Set ENABLE to "true" to let the script run at boot time.
# 
# eg:   ENABLE="true"
#   GOVERNOR="ondemand"
#   MAX_SPEED=1000
#   MIN_SPEED=500

ENABLE="true" GOVERNOR="ondemand" MAX_SPEED="0" MIN_SPEED="0"

check_governor_avail() {    info="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"     if [ -f $info ] && grep -q "\<$GOVERNOR\>" $info ; then         return 0;   fi  return 1; }

[ -x $CPUFREQ_SET ] || exit 0

if [ -f /etc/default/cpufrequtils ] ; then  . /etc/default/cpufrequtils fi

# if not enabled then exit gracefully [ "$ENABLE" = "true" ] || exit 0

if [ -n "$MAX_SPEED" ] && [ $MAX_SPEED != "0" ] ; then  CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --max $MAX_SPEED" fi

if [ -n "$MIN_SPEED" ] && [ $MIN_SPEED != "0" ] ; then  CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS --min $MIN_SPEED" fi

if [ -n "$GOVERNOR" ] ; then    CPUFREQ_OPTIONS="$CPUFREQ_OPTIONS
--governor $GOVERNOR" fi

CPUS=$(cat /proc/stat|sed -ne 's/^cpu\([[:digit:]]\+\).*/\1/p') RETVAL=0 case "$1" in   start|force-reload|restart|reload)      log_action_begin_msg "$DESC: Setting $GOVERNOR CPUFreq governor"        if check_governor_avail ; then          for cpu in $CPUS ; do
                log_action_cont_msg "CPU${cpu}"
                $CPUFREQ_SET --cpu $cpu $CPUFREQ_OPTIONS 2>&1 > /dev/null || \
                    RETVAL=$?           done            log_action_end_msg $RETVAL ""       else            log_action_cont_msg "disabled, governor not available"          log_action_end_msg $RETVAL      fi      ;;  stop)       ;;  *)      echo "Usage: $0 {start|stop|restart|reload|force-reload}"       exit 1 esac

exit 0

The error appears to be in the 17.10 replacement of indicator-cpu with the cpufreq gnome extension. By avoiding this extension and using the command line, the solution below will work.

1 Answer 1

1

In your /etc/init.d/cpufrequtils file change:

GOVERNOR="ondemand"

to:

GOVERNOR="performance"

Leave the rest of the line as is. Save and reboot.


TL;DR - old answer below

As far as Intel speed governors go:

  • ondemand mode was deprecated years ago.
  • performance mode has little improvement over powersave mode.

That said your processor may not even support picking between performance and powersave.

To view available speed governors use this command:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
performance powersave

If you do have more than one governor you can check what is currently in use with this command:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave

To change your processor to performance mode use:

$ echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance

You will then notice CPU% utilization drop by about 5% but also notice speed will increase from about 1000 MHz to 3000 MHz and temperatures will spike by ~10 degree, depending on your processor:

CPU Performance mode.gif


I have noticed that even when set to powersave mode (as I always use) when Ubuntu first boots it runs in performance mode for 90 seconds before it eventually kicks into powersave mode.

None-the-less after manually setting the governor to performance mode using the appropriate command above. It has stayed in performance mode for 10 minutes now as confirmed by using the appropriate command above and doubly confirmed by conky display above.


I left the governor set on performance for 30 minutes and it worked just fine. It might interest some readers what the conky display looks like when switching off of performance governor back to the default powersave governor:

CPU powersave.gif

CPU% utilization has spiked by 5%, but CPU frequency has dropped by 1500 MHz and temperature has decreased by about 10 degrees. Overall I think powersave mode is the best for most configurations.

14
  • i definitely have performance as one of the governors. (dual xeon, 32 cores). When I set it to performance, however, it begins to behave normally and then just, for whatever reason, reverts to powersave. This is a new problem in 17.10. Apr 1, 2018 at 23:22
  • 1
    @MichaelJarret I changed my machine to use performance mode. It is still sticking after 5 minutes. But I used the command line (instructions above) and I'm Ubuntu 16.04, Kernel 4.14.27. Apr 1, 2018 at 23:37
  • Thanks for checking. I've been having difficulty with other extensions too. If nobody can recreate this, I'll probably just remove it for the time being. Apr 1, 2018 at 23:41
  • @MichaelJarret Try running the commands I added to the answer. Maybe they will work for you? Apr 1, 2018 at 23:44
  • I actually did this before your post with no luck :/. Apr 1, 2018 at 23:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.