尾辻です。 フリーズしてしまうのでまだまだです。すみません。
At Sat, 28 Feb 2009 17:36:19 +0900, Norikatsu Shigemura <n...@ninth-nine.com> wrote: > > On Sat, 28 Feb 2009 17:02:31 +0900 > Norikatsu Shigemura <n...@ninth-nine.com> wrote: > > フリーズした瞬間は, P2 state にいたのがさらに P2 state に移行しようとし > > て…を繰り返してという感じな動きになっているというか。P1 state は問題ない > > のかな。debug.cpufreq.lowest 指定してそれ以上下がらないようにするのが正 > > 解か調べてみます。 > > あぁ。やっぱこれっポイ!です。dev.cpu.0.freq_lebels 的には 2300MHz が > 下限っポイ!ですね。 > > dev.cpu.0.freq_levels: 3500/-1 3062/-1 2625/-1 2300/-1 > > debug.cpufreq.lowest=2300 にしたら, 安定稼働しています。 > > 以上よろしくお願いいたします。 dev.cpu.0.freq_levels: 3500/-1 3062/-1 2625/-1 2300/-1 というのが気になります。変です。というのは、 > hwpstate0: you have 4 P-state. > hwpstate0: freq=3500MHz volts=1350mV > hwpstate0: freq=2300MHz volts=1250mV > hwpstate0: freq=1800MHz volts=1150mV > hwpstate0: freq=800MHz volts=1000mV の出力からは、 dev.cpu.0.freq_levels: 3500/-1 2300/-1 1800/-1 800/-1 になって欲しいところです。 それにしても3.5GHzはすごいです。 よくメールを読んでみたら、たぶん > acpi_throttle0: <ACPI CPU Throttling> on cpu0 これのせいだと思います。 うちのパソコンでは acpi_trhottleがでてこないので色々調べたのですが、 acpi_throttleのソースは_PTCを見るみたいで acpidump -dt | grep _PTC の結果がないのでどうにも再現できないです。 webで検索すると、 /boot/loader.confに hint.acpi_throttle.0.disabled="1" を書くとacpi_throttleを止められるらしいのですが。 hint.acpi_perf.0.disabled="1" も要るかもしれません。 At Sat, 28 Feb 2009 17:02:31 +0900, Norikatsu Shigemura <n...@ninth-nine.com> wrote: > > 重村法克です。 > > On Mon, 03 Nov 2008 07:51:21 +0900 > anno...@gmail.com wrote: > >Phenom/opteron{1,2,8}3XXなcpufreqを作ってみました。 > >まだβバージョンですが。 > > 最近 Phenom II を手に入れたのでテストしてみました。 ありがとうございます。 > > > current mailing listに投稿しても > > なんというか、私の英語がひどいのかそれとも、 > > 以前のpstate.cがひどかったのか、それともかなり間があいたからなのか > > というかんじなものですから、こちらにも投稿させていただきます。 > > ちょいと見てみましたが, 使ってる人が少ない感じかな。という気がします。 > あの辺だと jkim 氏あたり捕まえるのがいいかも。 > > > ベロニカさんの所ではうまくいったのですが、cghostsさんの所では > > うまくいかないみたいでした。PHKさんの所ではどうなのかわかりません。 > > currentのamd64でもためしているのでamd64でも大丈夫だと思います。 > > 私の環境でもあまり安定しませんね。数秒でフリーズしてしまいます。 > ちなみに動作確認環境は 8-current で amd64 です。 acpi_throttleが効かないという稀?な環境のため安定していたみたいです。 わからないですが。 > > > なにぶんはじめてのカーネルモジュールなのでいたらないところ > > こうしたほうがいいところなど指摘してくださると > > うれしいです。 > > 1. Phenom CPU を直接ご指名のようですが, Phenom II では動きませんで > した。詳細はよくわかってないのですが, K10 アーキテクチャ全般で有効な > ら P-state invariant TSC のコードを参考に下記のように変更してし > まうのがいいかもしれません。 > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - > --- 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) { > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - ありがとうございます。 dmesgの > CPU: AMD Phenom(tm) II X4 940 Processor (3511.86-MHz K8-class CPU) > Origin = "AuthenticAMD" Id = 0x100f42 Stepping = 2 この部分から case 0x100f42; とするよりいいかもしれないです。 > > 2. カーネルモジュールしかできないということでしたので, kernel configuration > に組み込むパッチを作りました。参考までに。 > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - > --- sys/conf/files.amd64.orig 2009-02-16 05:24:21.000000000 +0900 > +++ sys/conf/files.amd64 2009-02-26 02:49:23.693819088 +0900 > @@ -270,5 +270,6 @@ > i386/cpufreq/powernow.c optional cpufreq > i386/cpufreq/est.c optional cpufreq > i386/cpufreq/p4tcc.c optional cpufreq > +i386/cpufreq/hwpstate.c optional cpufreq > # > libkern/memset.c standard > --- sys/conf/files.i386.orig 2009-02-16 05:24:21.000000000 +0900 > +++ sys/conf/files.i386 2009-02-27 15:01:42.024721231 +0900 > @@ -248,6 +248,7 @@ > i386/cpufreq/p4tcc.c optional cpufreq > i386/cpufreq/powernow.c optional cpufreq > i386/cpufreq/smist.c optional cpufreq > +i386/cpufreq/hwpstate.c optional cpufreq > #i386/i386/apic_vector.s optional apic > i386/i386/atomic.c standard \ > compile-with "${CC} -c ${CFLAGS} > ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}" > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - > > 3. ソースの COPYRIGHT がないですね。全体的に style(9) に準拠しきれて > いません。COPYRIGHT は /usr/share/examples/etc/bsd-style-copyright > を参考にしてください。[id for your version control system, if any] > は $FreeBSD$ に置き換えるといいです。style(9) は下記 URL を参考にして > ください。 > > http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=style&dir=jpman-7.1.2%2Fman§=9 > > 4. とりあえず dmesg でも。 > フリーズした瞬間は, P2 state にいたのがさらに P2 state に移行しようとし > て…を繰り返してという感じな動きになっているというか。P1 state は問題ない > のかな。debug.cpufreq.lowest 指定してそれ以上下がらないようにするのが正 > 解か調べてみます。 > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - > CPU: AMD Phenom(tm) II X4 940 Processor (3511.86-MHz K8-class CPU) > Origin = "AuthenticAMD" Id = 0x100f42 Stepping = 2 > > Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT> > Features2=0x802009<SSE3,MON,CX16,POPCNT> > AMD > Features=0xee500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM,3DNow!+,3DNow!> > AMD > Features2=0x37ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,IBS,SKINIT,WDT> > TSC: P-state invariant > Cores per package: 4 > : > cpu0: <ACPI CPU> on acpi0 > acpi_throttle0: <ACPI CPU Throttling> on cpu0 > hwpstate0: <Cool`n'Quiet 2.0> on cpu0 > hwpstate0: SVI mode > hwpstate0: you have 4 P-state. > hwpstate0: freq=3500MHz volts=1350mV > hwpstate0: freq=2300MHz volts=1250mV > hwpstate0: freq=1800MHz volts=1150mV > hwpstate0: freq=800MHz volts=1000mV > hwpstate0: Now P0-state. > cpu1: <ACPI CPU> on acpi0 > hwpstate1: <Cool`n'Quiet 2.0> on cpu1 > hwpstate1: SVI mode > hwpstate1: you have 4 P-state. > hwpstate1: freq=3500MHz volts=1350mV > hwpstate1: freq=2300MHz volts=1250mV > hwpstate1: freq=1800MHz volts=1150mV > hwpstate1: freq=800MHz volts=1000mV > hwpstate1: Now P0-state. > cpu2: <ACPI CPU> on acpi0 > hwpstate2: <Cool`n'Quiet 2.0> on cpu2 > hwpstate2: SVI mode > hwpstate2: you have 4 P-state. > hwpstate2: freq=3500MHz volts=1350mV > hwpstate2: freq=2300MHz volts=1250mV > hwpstate2: freq=1800MHz volts=1150mV > hwpstate2: freq=800MHz volts=1000mV > hwpstate2: Now P0-state. > cpu3: <ACPI CPU> on acpi0 > hwpstate3: <Cool`n'Quiet 2.0> on cpu3 > hwpstate3: SVI mode > hwpstate3: you have 4 P-state. > hwpstate3: freq=3500MHz volts=1350mV > hwpstate3: freq=2300MHz volts=1250mV > hwpstate3: freq=1800MHz volts=1150mV > hwpstate3: freq=800MHz volts=1000mV > hwpstate3: Now P0-state. > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - > > 以上よろしくお願いいたします。 ありがとうございます。 精進します。 acpiをもっとよく調べてソース書き直したいです。 - - - - - - - - - - - - - - - - - - G.Otsuji<anon...@gmail.com>