尾辻です。

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>

メールによる返信