enchufado
   RSS
#
En verano, amd64 PowerNow (GNU/Linux) 2006-07-12 19:58:37

Ahora que llega el veranito y empieza a hacer calor de verdad, es cuanto más se tuestan nuestros compañeros. El tema salió cuando se me ocurrió mirar la temperatura de mi GPU (el core de mi tarjeta gráfica) con la utilidad Nvidia X Server Settings justo después de haber echado una partida al Unreal Tournament 2004: 75º.

En mis tiempos del amd xp 1700+ (parece que ha pasado una eternidad y lo dejé de usar ¡en Febrero!) usaba los sensores de temperatura incluidos en mi kernel para no sólo conocer de la calentura de mi contertulio, sino para que el sistema supiera cuándo había que darle caña a los ventiladores del disipador para refrescar el asunto. A parte de esto y a falta de una tecnología incluída en mi procesador, usaba athcool para mandarle ciertas instrucciones y así ayudar a su refrigerio cuando no se requería hacerlo trabajar (para entendernos, cuando estaba idle).

Como he medio dicho, en Febrero me pasé a un amd64 3200+ con Gentoo amd64, y ya os podéis figurar cómo se pone el bicho cuando compila durante X horas seguidas... Pues bien, había incluído en el kernel lo necesario para poder hacer uso de las features de refrigeración que incluye (PowerNow) y así me lo indicaba el kernel:

# dmesg | grep powernow
powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.50.4)
powernow-k8:    0 : fid 0xc (2000 MHz), vid 0x6 (1400 mV)
powernow-k8:    1 : fid 0xa (1800 MHz), vid 0x8 (1350 mV)
powernow-k8:    2 : fid 0x2 (1000 MHz), vid 0xa (1300 mV)

Como en realidad no estaba tan interesado en conocer la temperatura como en que el micro no sufriera cuando no fuera necesario, no incluí soporte para sensors. Y yo tan contento -la ignorancia es felicidad- pensando que todo estaba funcionando... hasta que, comentándolo por casualidad con un compañero del IRC, me di cuenta que no era así. Si bien el dmesg anterior mostraba que tenía la característica del 'frequency scaling' activada, lo siguiente me indicaba que mi micro corría todo el rato al máximo:

# cat /proc/cpuinfo | grep -i mhz
cpu MHz         : 2009.179

Resulta que... ¡me faltaba el daemon que hiciera el frequency scaling! Como se puede optar tanto por cpufreqd como por powernowd , instalé éste último y pude posteriormente comprobar que ahora la cosa sí iba como era de esperar.

# cat /proc/cpuinfo | grep -i mhz
cpu MHz         : 1004.589

Estos demonios ya tienen sus directrices por defecto en relación a cuándo y en base a qué criterios cambiar la velocidad del micro, si bien podemos customizarlos para adaptarlos a nuestras necesidades (mirad los respectivos man's).

NOTA: Para poder usar lo aquí comentado es necesario tener un kernel 2.5 o superior con la interface sysfs (a través de la cual podríamos cambiar los valores del stepping haciendo un echo en el sitio pertinente* a mano).

* /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

Para terminar, doyle las gracias a ErNi por el assessment :)


Comentarios (7)


Volver al indice

login, admin, form, register