尾辻です。

hint.acpi_throttle.0.disabled="1"をどうにかしたいのですが
acpi_throttleが有効にできないのでなんともなところです。

それで寄り道しました。hwpstate.cを添付します。

At Sun, 1 Mar 2009 18:57:37 +0900,
Norikatsu Shigemura <n...@ninth-nine.com> wrote:
> 
> 重村法克です。
> 
> On Sun, 1 Mar 2009 18:40:41 +0900
> Norikatsu Shigemura <n...@ninth-nine.com> wrote:
> >     1.466V ほどなのですが…。。まだ冬なので 36 ℃とか。。(^^;
> 
>       そうそう。k8temp(4) については作者の rpaulo 氏に問い合わせ中です。
>       もうちょっとリアルタイムに温度を取りたいところ。

1) sysctlの練習も兼ねて、こちらに寄り道してみました。
sysctl debug.hwpstate_temp
で温度が出ます。
% sysctl debug.hwpstate_temp
debug.hwpstate_temp: 32.000
摂氏1/8度=0.125度区切りだということで小数点以下三桁用意しました。

2) mWも出るようにしてみました。
% sysctl dev.cpu.0.freq_levels
dev.cpu.0.freq_levels: 2500/96000 1250/29000
けれど適当な見積りなのであまり信用しないでください。

3) COPYRIGHTもBSDライセンスにしてみました。

4) いただいた下のパッチをいれてみました。すこし改変して。
> --- hwpstate.c.orig   2009-02-26 02:46:11.000000000 +0900
> +++ hwpstate.c        2009-02-27 02:54:04.000000000 +0900
> @@ -15,6 +15,8 @@
>  #include <sys/proc.h>
>  #include <dev/pci/pcivar.h>
>  #include <machine/md_var.h>
> +#include <machine/cputypes.h>
> +#include <machine/specialreg.h>
>  
>  #include <contrib/dev/acpica/acpi.h>
>  #include <dev/acpica/acpivar.h>
> @@ -238,14 +240,9 @@
>                       return (ENXIO);
>       }
>       sc = device_get_softc(dev);
> -     switch (cpu_id) {
> -     case 0x100f2A:          /* family 10h rev.DR-BA */
> -     case 0x100f22:          /* family 10h rev.DR-B2 */
> -     case 0x100f23:          /* family 10h rev.DR-B3 */
> -             break;
> -     default:
> +     if (cpu_vendor_id != CPU_VENDOR_AMD || AMD64_CPU_FAMILY(cpu_id) < 0x10)
>               return (ENXIO);
> -     }
> +
>       msr = rdmsr(MSR_AMD10H_LIMIT);
>       sc->cfnum = AMD10H_GET_PSTATE_MAX_VAL(msr);
>       if (sc->cfnum == 0) {

5)
At Mon, 02 Mar 2009 07:27:51 +0900,
"G .Otsuji" <anno...@gmail.com> wrote:
> acpiを触ってないのでacpi_perf依存を外しても大丈夫だとおもいます。
> けれどacpi_throttleは結局認識されそうなので。
#if 0で外してみました。
初めにacpi_perfがよくわからず、すべてのcpufreqドライバが書いていたので、なんかご利益があるのだろうと思って
書いてみたんです。やっぱり外すべきではないかもしれないので、#if 0にしてます。ごめんなさい。

> 色々考えてみたのですが、
> 1) 名前変えたいです。powernowもP-stateだし、そして
> Cool`n'quiet K7,K8もpowernowで表示されるのですが、K10ではCool`n'Quiet 2.0,3.0らしいので
> cnq2とかcnqk10とかk10cnqとかcnqなんとかとかを考えてはみたのですが。末尾に数字はどうなんだろうとも思ったり。
これを考えたのですが、
hwPstate Enable bitがある場合はこのモジュールが有効化されるということで
hwpstateという名前にしたみたいです。
変えなくてもいい気もしてきました :-)。

> 2) acpi_throttleとの兼ね合いです。
>  1 device_disable("acpi_throttle")のようなことをするのか、できるのか、
>  2 acpi_throttleが有効化されていたらENXIOを返すのか、
>  3 acpi_throttleと共存を図るのか、
> です。共存はどうすればいいんでしょう。
これはどうにかしたいのですが、
acpi_throttleが有効にできないのでなんともなところです。

> 3) ソースをstyle(9)に準拠したいです。COPYRIGHTも。
style(9)に添ったemacs22の設定教えてください m(_ _)m
とても面倒です。
 
新しいhwpsatet.cを添付いたしますので、よろしくお願いします。

G.Otsuji<anno...@gmail.com>

Attachment: hwpstate.c
Description: Binary data

メールによる返信