SpeedStep + cpufreqd で動作クロックを調整する
Posted by yoosee on Debian at 2007-03-02 22:00 JST1 SpeedStep を Linux で使う
ここ数週間で 2度も Linux NotePC (CF-Y4) がフリーズしたので、もしかして熱暴走では無いかと思い、CPU clock speed の調整をしてみることにした。この PC は centrino なので SpeedStep が利用できる。CPU feature を見る場合、/proc/cpuinfo にある flags の est がそれに当たるようだ。flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx est tm2asm/cpufeature.h ではこの部分
#define X86_FEATURE_EST (4*32+ 7) /* Enhanced SpeedStep */まずは
# modprobe speedstep_centrinoした時に /sys/devices/system/cpu/cpu0/cpufreq/ が作られるようであれば対応している (centrino 以外の speedstep はよく知らないが) ので、/etc/modules に speedstep_centrino と書いておく。
2 cpufreqd の設定
制御には cpufreqd を使う。インストールした時点で、AC 電源を抜いた際に動作クロックが下がるのが見て取れるはずだ。一方 AC on の場合、デフォルト設定では常に 100% で動くようになっている。これを変更するために /etc/cpufreqd.conf を調整する。あまり細かく区切っても面倒なので 4段階に。[Rule] name=AC_on_lo ac=on cpu_interval=0-10 profile=lo_save [Rule] name=AC_on_mid_lo ac=on cpu_interval=10-30 profile=medium_save [Rule] name=AC_on_mid_hi ac=on cpu_interval=30-60 profile=medium_boost [Rule] name=AC_on_hi ac=on cpu_interval=60-100 profile=hi_boost対応する [Profile] は以下のようにしている。
name | minfreq(%) | maxfreq(%) | policy |
---|---|---|---|
lo_save | 0 | 30 | powersave |
medium_save | 20 | 40 | powersave |
medium_boost | 33 | 66 | performance |
hi_boost | 66 | 100 | performance |
Gnome の CPU Frequency Scaling Monitor で見ると、CPU負荷によって1.50GHz から 600MHz まで変動している。この CPU では Freq の範囲は 600-1,500MHz のようなので 600MHz (40%) 以下には下がらないようだ。普通にエディタを使っているくらいの時は大体 600MHz 、make したり Firefox でページ表示を更新したりすると 1.20-1.50GHz といった高い数字になる。
さてそれで肝心の筐体温度だが、うーん、PC裏面に触った程度ではあまり変わってないような気もする。