cambiar default cpufreq governor en debian squeeze

Publicado: 23 junio, 2011 en General

Estimad@s, para todos aquellos que tenemos máquinas de escritorio en nuestro trabajo o casa y por defecto nuestro sistema inicia con un governor “ondemand” o “powersave” siendo que tenemos un tremendo procesador y bastante ram para dar riendas sueltas a nuestro equipo aquí una solución a ello. Creo que es una buena política para netbooks o notebook, pero para nuestro monstruo, na!, bueno he aquí para dejar nuestro equipo en “performance” al momento de iniciar nuestro PC, manos a la obra:

  • Lo primero es saber que governors tenemos disponibles, para ello en una consola ejecutamos  cpufreq-info” estos nos mostrará una sarta de información que en toda ella esta la que nos importa, esta línea “available cpufreq governors: userspace, powersave, conservative, ondemand, performance”.
  • Ya sabemos que governors tenemos disponibles, ahora podemos cambiar a performance como root con “cpufreq-set -g performance” excelente! ya tengo mi cpu0 a toda máquina! y ¿Cómo lo sé? bueno ejecutamos nuevamente cpufreq-info” pero esta vez miraremos un poco más abajo que la vez anterior, donde dice:
current policy: frequency should be within 1.35 GHz and 2.70 GHz.
                The governor "performance" may decide which speed to use
                within this range. 
                current CPU frequency is 2.70 GHz
  • Ahí nos esta diciendo dos cosas, que el governor que esta actualmente es “performance” y que la frecuencia máxima a la que trabaja es de 2.70 Ghz, genial no!

Ahora la pregunta es ¿Cómo diablos lo hago para que se ejecute cuando inicio mi PC? tranquilo, aquí la respuesta, para ellos necesitamos entrar como root a una consola y escribir lo siguiente:

gedit /etc/init.d/rc.local

Esto nos abrirá nuestro último archivo que se procesa al iniciar nuestro sistema (en escalamiento, pero ese es otro tema) en el cual debemos agregar los siguiente tal cual lo muestra la imagen.

Dos cosas, lo que escriben lo deben hacer antes de exit 0 y ahí existen dos líneas, una para cada core, c0 y c1, salvar el archivo y ya! cada vez que iniciemos nuestro sistema empezara con governor “performance”.

 

NOTA: Esto no es recomendable para dispositivos que usen baterías ya que este governor hará que la batería dure menos de lo acostumbrado, ya que utiliza todo el power! de la PC, suerte!

comentarios
  1. Alex6.C dice:

    Rayos, tengo un problema con los governors, te agradecería si pudieras echarme una mano. he probado diversas soluciones pero sin éxito. Estoy usando actualmente Debian GNU/Linux 6.0.2 (squeeze) Release:6.0.2 con núcleo Linux 2.6.32-5-686. Además uso una Tarjeta Madre Intel 865 GLC con procesador Pentium-4 soporte HT en teoría dos núcleos virtuales.

    NOTA: Mis disculpas, no se si tengas soporte de etiquetas html para los comentarios de respuesta desde un dominio gratuito en WordPress, por eso no ordené por tags todo lo que he escrito.

    Todo comienza porque por recibir un mensaje durante la carga, que el demonio de Governor falla y que no puede ser inicializado. Lo que he probado…

    Por defecto trae instalado cpufreqd, al reinstalarlo
    ************************************************************************************
    Configurando cpufreqd (2.4.2-1) …
    No cpufreq interface found, not starting cpufreqd.
    ************************************************************************************

    Probé usar además powernowd que elimina automáticamente a cpufreqd obtuve lo siguiente:
    *************************************************************************************
    Configurando powernowd (1.00-1.1) …
    Starting powernowd: required sysfs objects not found!
    Read /usr/share/doc/powernowd/README.Debian for more information.
    *************************************************************************************
    Por si acaso te puedo mostrar los resultados de mi cat /proc/cpuinfo y de mi /etc/sysfs.conf

    Cualquier información, será bienvenida!

    Resultado de: cpufreq-info

    **************************************************************************************

    cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
    Report errors and bugs to cpufreq@vger.kernel.org, please.
    analyzing CPU 0:
      no or unknown cpufreq driver is active on this CPU
      maximum transition latency: 0.00 ms.
    analyzing CPU 1:
      no or unknown cpufreq driver is active on this CPU
      maximum transition latency: 0.00 ms.

    **************************************************************************************

    Resultados de: find /lib/modules/2.6.32-5-686/ -iname “*freq*”

    **************************************************************************************
    /lib/modules/2.6.32-5-686/kernel/drivers/cpufreq
    /lib/modules/2.6.32-5-686/kernel/drivers/cpufreq/cpufreq_stats.ko
    /lib/modules/2.6.32-5-686/kernel/drivers/cpufreq/cpufreq_userspace.ko
    /lib/modules/2.6.32-5-686/kernel/drivers/cpufreq/cpufreq_conservative.ko
    /lib/modules/2.6.32-5-686/kernel/drivers/cpufreq/cpufreq_powersave.ko
    /lib/modules/2.6.32-5-686/kernel/arch/x86/kernel/cpu/cpufreq
    /lib/modules/2.6.32-5-686/kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko
    /lib/modules/2.6.32-5-686/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko
    *************************************************************************************

    Un abrazo y gracias de antemano.

  2. goreOTR dice:

    Alex, como va, por los antecedentes que expones, me da la sensación que tienes problemas en la configuración de tu tarjeta madre en la BIOS, revisar que el ht este activo y que este bien configurado una vez revisado y activo volver a revisar, suerte!

  3. Alex6.C dice:

    Que tal GoreOTR,

    Pues aquí nuevamente, realice la comprobación del HT y se encuentra activo y funcional, pero aún así recibo los mismos mensajes. parece que la situación se va complicando con esta tecnología de intel. Pareciera que voy a tener que compilar un nuevo kernel, pero no me queda muy clara la compilación del ultimo estable que salio 3.0.3 .

    Saludos y Gracias por las sugerencias

  4. goreOTR dice:

    Puedes probar utilizando una versin live como por ejemplo un ubuntu 11, inicia live ve la posibilidad de cambiar y ver como funciona el governor.

  5. Alex6.C dice:

    Que tal goreOTR, después de escarbar un poco entre los escombros de información, he conseguido un avance en el tema.

    aparentemente no estaban cargados los drivers, Instale modconf

    luego busque algún modulo que me indicara la información apropiada para mis governors disponibles

    y conseguí que p4-clockmod era el tipo y no estaba cargado. ademas instale el modulo cpuid

    como resultado lo siguiente después de haber cargado el posible modulo.

    Ahora con: cpufreq-info

    
    cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
    Report errors and bugs to cpufreq@vger.kernel.org, please.
    analyzing CPU 0:
      driver: p4-clockmod
      CPUs which run at the same hardware frequency: 0 1
      CPUs which need to have their frequency coordinated by software: 0 1
      maximum transition latency: 10.00 ms.
      hardware limits: 375 MHz - 3.00 GHz
      available frequency steps: 375 MHz, 750 MHz, 1.13 GHz, 1.50 GHz, 1.88 GHz, 2.25 GHz, 2.63 GHz, 3.00 GHz
      available cpufreq governors: powersave, conservative, userspace, ondemand, performance
      current policy: frequency should be within 375 MHz and 3.00 GHz.
                      The governor "performance" may decide which speed to use
                      within this range.
      current CPU frequency is 3.00 GHz (asserted by call to hardware).
      cpufreq stats: 375 MHz:0,00%, 750 MHz:0,00%, 1.13 GHz:0,00%, 1.50 GHz:0,00%, 1.88 GHz:0,00%, 2.25 GHz:0,00%, 2.63 GHz:0,00%, 3.00 GHz:100,00%
    analyzing CPU 1:
      driver: p4-clockmod
      CPUs which run at the same hardware frequency: 0 1
      CPUs which need to have their frequency coordinated by software: 0 1
      maximum transition latency: 10.00 ms.
      hardware limits: 375 MHz - 3.00 GHz
      available frequency steps: 375 MHz, 750 MHz, 1.13 GHz, 1.50 GHz, 1.88 GHz, 2.25 GHz, 2.63 GHz, 3.00 GHz
      available cpufreq governors: powersave, conservative, userspace, ondemand, performance
      current policy: frequency should be within 375 MHz and 3.00 GHz.
                      The governor "performance" may decide which speed to use
                      within this range.
      current CPU frequency is 3.00 GHz (asserted by call to hardware).
      cpufreq stats: 375 MHz:0,00%, 750 MHz:0,00%, 1.13 GHz:0,00%, 1.50 GHz:0,00%, 1.88 GHz:0,00%, 2.25 GHz:0,00%, 2.63 GHz:0,00%, 3.00 GHz:100,00%
    
    

    Luego configuré con el comando que indicas anteriormente, cuentame si para este CPU con HT sea el adecuado.

    cpufreq-set -g performance

    Como resultado:

    cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
    Report errors and bugs to cpufreq@vger.kernel.org, please.
    analyzing CPU 0:
      driver: p4-clockmod
      CPUs which run at the same hardware frequency: 0 1
      CPUs which need to have their frequency coordinated by software: 0 1
      maximum transition latency: 10.00 ms.
      hardware limits: 375 MHz - 3.00 GHz
      available frequency steps: 375 MHz, 750 MHz, 1.13 GHz, 1.50 GHz, 1.88 GHz, 2.25 GHz, 2.63 GHz, 3.00 GHz
      available cpufreq governors: powersave, conservative, userspace, ondemand, performance
      current policy: frequency should be within 375 MHz and 3.00 GHz.
                      The governor "performance" may decide which speed to use
                      within this range.
      current CPU frequency is 3.00 GHz (asserted by call to hardware).
      cpufreq stats: 375 MHz:0,00%, 750 MHz:0,00%, 1.13 GHz:0,00%, 1.50 GHz:0,00%, 1.88 GHz:0,00%, 2.25 GHz:0,00%, 2.63 GHz:0,00%, 3.00 GHz:100,00%
    analyzing CPU 1:
      driver: p4-clockmod
      CPUs which run at the same hardware frequency: 0 1
      CPUs which need to have their frequency coordinated by software: 0 1
      maximum transition latency: 10.00 ms.
      hardware limits: 375 MHz - 3.00 GHz
      available frequency steps: 375 MHz, 750 MHz, 1.13 GHz, 1.50 GHz, 1.88 GHz, 2.25 GHz, 2.63 GHz, 3.00 GHz
      available cpufreq governors: powersave, conservative, userspace, ondemand, performance
      current policy: frequency should be within 375 MHz and 3.00 GHz.
                      The governor "performance" may decide which speed to use
                      within this range.
      current CPU frequency is 3.00 GHz (asserted by call to hardware).
      cpufreq stats: 375 MHz:0,00%, 750 MHz:0,00%, 1.13 GHz:0,00%, 1.50 GHz:0,00%, 1.88 GHz:0,00%, 2.25 GHz:0,00%, 2.63 GHz:0,00%, 3.00 GHz:100,00%
    
    

    Ahora mi duda es la siguiente necesito agregar al usuario al grupo p4-clockmod ?

    hecha un ojo al resultado de este modulo con el comando lsmod

    p4_clockmod 2444 1
    speedstep_lib 2468 1 p4_clockmod

    Tengo una duda aquí, el numero (1) significa que no está establecido por defaut para el usuario…?

    Lo otro es que debería escribir y si debería con esta versión del núcleo para que se carguen al arranque y se ejecuten correctamente.

    Tengo lo siguiente en gedit /etc/init.d/rc.local

    
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:          rc.local
    # Required-Start:    $remote_fs $syslog $all
    # Required-Stop:
    # Default-Start:     2 3 4 5
    # Default-Stop:
    # Short-Description: Run /etc/rc.local if it exist
    ### END INIT INFO
    
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    
    . /lib/init/vars.sh
    . /lib/lsb/init-functions
    
    do_start() {
    	if [ -x /etc/rc.local ]; then
    	        [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
    		/etc/rc.local
    		ES=$?
    		[ "$VERBOSE" != no ] && log_end_msg $ES
    		return $ES
    	fi
    }
    
    case "$1" in
        start)
    	do_start
            ;;
        restart|reload|force-reload)
            echo "Error: argument '$1' not supported" >&2
            exit 3
            ;;
        stop)
            ;;
        *)
            echo "Usage: $0 start|stop" >&2
            exit 3
            ;;
    esac
    
    

    Saludos, cualquier cosa estoy pendiente de sugerencias, continuaré investigando.

  6. goreOTR dice:

    Alex, ya esta! funciona, ahora respondo tus dudas, vamos por parte:

    cpufreq-set -g performance es el comando para cambiar el gobernor, en cualquier arquitectura, así que esta bien ejecutado, según cpufreq-info tienes todos estos gobernos para utilizar: powersave, conservative, userspace, ondemand, performance.

    Ahora, no es necesario agregar al usuario al grupo p4-clockmod, debiese funcionar de todas maneras.

    Ahora las líneas que tienes en rc.local deja tal cual esta, solo agrega las lineas que yo puse antes de que termine el archivo o mas bien antes de que encuentres este tag.”exit 0″

    Ahora si no funciona colocandolo en rc.local, intenta crear un archivo .sh con los comandos que debieses de colocar en rc.local, le das permisos de ejecución, lo colocas en en una carpeta donde no lo quiten y lo añades como aplicación al inicio, con eso debiese de funcionar.

    Alex, estaré atento a tus comentarios.

  7. Alex6.C dice:

    Gracias por la pronta respuesta goreOTR

    Pues definitivamente noticias MUY BUENAS, solucionado el problema!

    Al arrancar el PC mantiene el governor en “performance” manejando el escalado estático de frecuencia a 30000000kHz ya no está en el mínimo como antes 375000kHz

    Finalmente usando las dos lineas que recomiendas antes del último exit3 del
    /etc/init.d/rc.local

    Aquí dude un poco, porque no tenía un tag tipo “exit 0” lo que hice fué fijarme muy bien en la declaración case como decías era antes del ultimo ya hace referencia a que si lo va usar en el arranque, el primero de los exit 3 mostraría un mensaje en caso de error durante la carga de inicio o reinicio.

    Otra duda que me tenia rezando para que todo fuera bien era, la del driver que estaba usando el governor en el CPU, en vez de ser cpufreq como usa la gran mayoría de las arquitecturas usaba p4-clockmod me tenía algo preocupado porque pense que las declaraciones cpufreq-set -c0 -g performance y la otra fueran manejadas estrictamente por el driver cpufreq

    Bueno al final del drama, cuando reinicie, probé cpufreq-info -w con los dedos cruzados para no emocionarme mucho, y al ver la frecuencia a la cual se estaba ejecutando el CPU uuuun respiro por fin!

    30000000kHz

    Una vez mas al reiniciar, verifique en rcconf que el modulo estuviera cargado 😉

    Te agradezco mucho la ayuda y el Norte de apoyo en el tema hombre!

    Cito aquí unos links de apoyo que me sirvieron bastante, para todo el que presente una situación parecida con los governors.



    Muy buen blog y buena atención, estaré frecuentando. 😉

    Saludos

  8. Alex6.C dice:

    Perdon… use la etiqueta los links no se vieron.

    
    http://manpages.debian.net/cgi-bin/man.cgi?query=cpufreq-info&apropos=0&sektion=1&manpath=Debian+6.0+squeeze&format=html&locale=en
    
    http://manpages.debian.net/cgi-bin/man.cgi?query=cpufreq-info&sektion=1&apropos=0&manpath=Debian+Sid&locale=en
    
    http://kernel.org/doc/Documentation/cpu-freq/governors.txt
    
    

    saludos.

  9. goreOTR dice:

    Que bien Alex, me alegro que lo hayas podido resolver, ahora a disfrutar de la potencia de tu PC, sin duda es información valiosa para alguien que tengo similares problemas, si tienes algo que quisieses compartir con nosotros, no dudes en hacerlo y lo publicamos aquí en el blog, un abrazo.

  10. Alex6.C dice:

    Qué tal Gore, rodando por acá me di cuenta que los links de apoyo que usé no estaban visibles, debió ser porque las puse entre etiquetas de enlace HTML.

    Pero aquí publico de nuevo las fuentes de consulta.

    Acá información para el usuario final de como configurar los Governors (en ingles)

    http://wiki.debian.org/HowTo/CpuFrequencyScaling

    Todos los posibles parámetros que pueden ser usados con la orden de comando cpufreq-info

    http://manpages.debian.net/cgi-bin/man.cgi?query=cpufreq-info&sektion=1&apropos=0&manpath=Debian+Sid&locale=en

    Aquí esta la información oficial del funcionamiento y modificación de los C P U F r e q G o v e r n o r s

    http://kernel.org/doc/Documentation/cpu-freq/governors.txt

    Nos vemos en la próxima…mira que problemas aún sobran en Debian. Tanto así que acabo de salir de uno para entrar en otro que me tiene curioso, pero antes de joder la paciencia estoy haciendo una búsqueda con el fin de obtener mas detalles.

    Cuando investigue mas paso por acá.

    Un abrazo.

  11. goreOTR dice:

    Jajajaja, ok cuando quieras pasa por estos lados y haber si te puedo echar una manito con eso nuevo que te salio a la luz, estamos en contacto.

  12. Buenas:

    Tengo el mismo problema que Alex

    He cargado el driver p4_clockmod, pero no consigo cambiar el governor a ondemand, siempre esta en performance.

    Mi archivo rc.local tiene esta pinta:

    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides: rc.local
    # Required-Start: $all
    # Required-Stop:
    # Default-Start: 2 3 4 5
    # Default-Stop:
    # Short-Description: Run /etc/rc.local if it exist
    ### END INIT INFO

    PATH=/sbin:/usr/sbin:/bin:/usr/bin

    . /lib/init/vars.sh
    . /lib/lsb/init-functions

    do_start() {
    if [ -x /etc/rc.local ]; then
    [ “$VERBOSE” != no ] && log_begin_msg “Running local boot scripts (/etc/rc.local)”
    /etc/rc.local
    ES=$?
    [ “$VERBOSE” != no ] && log_end_msg $ES
    return $ES
    fi
    }

    case “$1” in
    start)
    do_start
    ;;
    restart|reload|force-reload)
    echo “Error: argument ‘$1’ not supported” >&2
    exit 3
    ;;
    stop)
    ;;
    *)
    echo “Usage: $0 start|stop” >&2
    exit 3
    ;;
    esac

    Pero no tengo ni idea donde pone las lineas que recomiendas…en que exit3??? mi ordenador esta siempre al 100% y creo que irá mejor en ondemand…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s