尾辻です。 acpi_throttleを無理やり認識させて動かしてみたレポートです。 ----
(1)認識まで。 acpi_throttleですが、FreeBSD-7.1Rで フリーズ覚悟で /sys/dev/acpica/acpi_throttle.cで if (AcpiGbl_FADT.DutyWidth == 0 ||を消したり cpu_duty_width=2としたりして カーネルコンパイルしてみました。 そしてだめもとでリブートしました。 そうするとacpi_throttle0が認識されるではないですか! ---------dmesg抜粋----------------- cpu0: <ACPI CPU> on acpi0 acpi_throttle0: <ACPI CPU Throttling> on cpu0 hwpstate0: <Cool`n'Quiet 2.0> on cpu0 --略-- まず、sysctlで調べてみました。 % sysctl dev.acpi_throttle.0.freq_settings dev.acpi_throttle.0.freq_settings: 10000/-1 7500/-1 5000/-1 2500/-1 % sysctl dev.hwpstate.0.freq_settings dev.hwpstate.0.freq_settings: 2500/96000 1250/29000 ふたつのcpufreqが認識されてます。 これらが混ざった結果、 % sysctl dev.cpu.0.freq_levels dev.cpu.0.freq_levels: 2500/96000 1875/72000 1250/29000 937/21750 625/14500 312/7250 こうなりました。 (2)フリーズするかどうか。 そこで、だめもとで,freq=312としてみます。 # sysctl dev.cpu.0.freq=312 dev.cpu.0.freq: 2500 sysctl: dev.cpu.0.freq: Invalid argument # sysctl dev.cpu.0.freq dev.cpu.0.freq: 312 Invalid argumentがなぜ返るのかわかりませんが、 本来なら矢印がついて dev.cpu.0.freq: 2500 -> 312 となるはずです。しかしその後dev.cpu.freq: 312となってるので 実際に変わってはいるようです。 312MHzはhwpstateの1250MHzとacpi_throttleの25%を掛けて312.5なので、 dmesgにhwpstate0 goto P1-stateなどと出ています。 hwpstateも働いています。 本当に312MHzなのかと思いまして調べました。 X描画は遅いですし、あるプログラムのコンパイル時間でしらべたら 2500MHz => 1.21s 312MHz => 10.65s 確かに300MHz近辺のようです。 うまくいきました。しかし、 キーンという高周波音が聞こえます。 次にpowerdを動かしつつopenofficeをコンパイルしてみました。 3時間経ちましたがフリーズしません。 実はフリーズして欲しかったりしたのですが、再現できませんでした。 (3)acpi_throttle acpi_throttleはSTPCLK#信号でクロックを下げるようです。 acpi_throttleは、AMDのBKDGではどうなってるのだろうと思ったら AMD BKDG(bios kernel developer guide)の Table 57: ACPI Power State Control Register SMAF Settingsの所に > Occurs based upon SMC hardware-initiated throttling. AMD recommends > using PROCHOT_L for thermal throttling and not implementing > stop clock based throttling. ということでstop clockを使ったスロットリングはあまりおすすめではないようです。 [結論など] 1) acpi_throttleを無理やり認識させても動く場合があるけど多分例外です。 2) acpi_throttleの高周波音が結構気になりました。 3) acpi_throttleはあまりおすすめではないようです。 4) フリーズが再現できず困りました。 5) acpi_throttleと組み合わせてうまくいくマザボもあるのかもと思われます。 以上です。 ================ G.Otsuji <anno...@gmail.com>