G965Q965 で 4GB

Intel の G965 チップセットの載ったマザー(DC965SS)に 2GB * 4 = 8GBメモリ載っけてるけど Linux が起動に超時間かかるし起動しても遅い。

http://naoya.g.hatena.ne.jp/naoya/20070424/1177405262

うちでは 4GB でももたついてますがなにか ヽ(´〜`;)

どうも x965 チップセットまわりなのか Core 2 Duo なのかわかりませんが,このへんでまともに Linux を動かせたためしがまだないです。

  • FC 6 以下だと起動時に pci=nommconf がひつよう
  • CentOS 5 だとそこは自動でやってくれるようになったみたい
  • clock が安定してないとか文句をいわれる
  • 気持ちディスクが遅いような…ディスクコントローラまわりがきちんと認識されてないような

今日は家に帰ってきてしまったんで私んとこは明日見てみますが id:naoya さんは dmesg をさらせば偉い人がヒントをくれるんじゃないかと思います。

追記 2007/04/25

G965 じゃなかったですよごめんなさいごめんなさい。だから naoya さんとこの原因はわかりませんでした(メモリ量も違うし)。でも,自分ところはちょっと進歩しました。

諸元

マシン
HP Compaq dx7300
マザー
不明
チップセット
Q965
CPU
Intel Core™2 Duo E6600 2.4GHz
Memory
4GB (2GB×2)
OS
CentOS 5.0
Kernel
kernel-2.6.18-8.1.1.el5 (つまり 2.6.18 + RedHat パッチ群?)

対処前現象

Losing some ticks... checking if CPU frequency changed.

...

warning: many lost ticks.
Your time source seems to be instable or some driver is hogging interupts
rip __do_softirq+0x53/0xd5

と怒られる。

しかもどうもディスクアクセスが遅い。よくよく dmesg 見ると,

SCSI subsystem initialized
libata version 2.00 loaded.
ata_piix 0000:00:1f.2: version 2.00
ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]
GSI 20 sharing vector 0xE1 and IRQ 20
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 18 (level, low) -> IRQ 225
ata: 0x1f0 IDE port busy
ata: 0x170 IDE port busy
ata_piix: probe of 0000:00:1f.2 failed with error -16

...

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Probing IDE interface ide0...
hda: ST3320620AS, ATA DISK drive
Probing IDE interface ide1...
hdc: HL-DT-STDVD+-RW GSA-H31L, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 512KiB
hda: 625142448 sectors (320072 MB) w/16384KiB Cache, CHS=38913/255/63
hda: cache flushes supported
 hda: hda1 hda2 hda3

どうも ICH8(ブロック図参照)内 IDE コントローラがきちんと認識されてないみたい。

実際,hdparm でいろいろいじってみると(⇒【HDDのアクセスが妙に遅く感じるときは

# hdparm /dev/hda
/dev/hda:
 multcount    = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 38913/255/63, sectors = 625142448, start = 0

# hdparm -d1 /dev/hda
/dev/hda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 using_dma    =  0 (off)

# hdparm -ft /dev/hda
/dev/hda:
 Timing buffered disk reads:   14 MB in  3.39 seconds =   4.13 MB/sec

DMA が on にならないのでめっちゃ遅い。ムキー!

対策

いろいろ検索してると,【Fedora JP BBS ≫Fedora Core 6≫スレッド: MSI P965 Neo にインストール出来ない】を発見。APIC まわりや IRQROUTE まわりは現 el5 kernel ではうまくいっているみたいなので,all-generic-ide オプションをためすことに。でも generic って響きがなんか DMA とは無縁っぽくてやだなぁ。

……再起動……

Kernel command line: ro root=LABEL=/ all-generic-ide
IDE generic will claim all unknown PCI IDE storage controllers.

...

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Unknown: IDE controller at PCI slot 0000:00:1f.2
GSI 17 sharing vector 0xC9 and IRQ 17
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 18 (level, low) -> IRQ 201
Unknown: chipset revision 2
Unknown: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x20e0-0x20e7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0x20e8-0x20ef, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
hda: ST3320620AS, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: HL-DT-STDVD+-RW GSA-H31L, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 512KiB
hda: 625142448 sectors (320072 MB) w/16384KiB Cache, CHS=38913/255/63
hda: cache flushes supported
 hda: hda1 hda2 hda3

BM-DMA キター!!!

# hdparm /dev/hda
/dev/hda:
 multcount    = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 38913/255/63, sectors = 625142448, start = 0

# hdparm -ft /dev/hda
/dev/hda:
 Timing buffered disk reads:  228 MB in  3.01 seconds =  75.73 MB/sec

速くなった!ほんとは bonnie++ ためしたい(⇒【Linux Tips – bonnie++の使用方法】,【HDDのパフォーマンスをテストする】)けど面倒なのでちょっとほっておく。

しかも副作用か「many lost ticks」って怒られなくなった気がする。

まとめ

よくよく引用元(naoya さんのとこ)みると id:sasada さんが『とりあえず「all-generic-ide pci=nommconf」みたいな初歩は通り抜けてるとして。』ってコメント書いてる。初歩だったのか。ガーン。

あと,これで解決かというと本筋としては ACPI まわりだか APIC まわりだか ata_piix まわりだかがきちんと直って ICH8 がきちんと認識されるのが正しいんですよね。