ここでの高度なユーザというのは、Unix系 OS の利用と管理について実地の知識を持っている人のことだ。このページにあることを、何をしているかきちんと理解しないで実行したら、システムのオペレーションで問題が生じることもある。
PCI IDE コードは、あなたの使っているチップセットを知らないかもしれない。その場合にはこんなメッセージが表示される:
pciide0: DMA, (unused)
このメッセージが出たら、カーネルの config ファイルで、pciide のエントリに 'flags 0x0001' と入れて DMA モードを強制してみる手がある。それだとこんな感じになる:
pciide* at pci ? dev ? function ? flags 0x0001
これをると、pciide コードはあなたのチップセットでのやり方を本当に知っているかどうかにはおかまいなしに、DMA モードを使おうとする。これがうまくいって、システムが起動時に fsck とその他起動プロセスを突破したら、たぶんこれはそのままずっと使えるはず。これが失敗して、ブート直後にシステムがハングしたりパニックしたりするようなら、DMA モードは使えない(まだ。あなたのチップセットのサポートが追加されるまで)。もしあなたの PCI-IDE コントローラのチップセットの完全なドキュメンテーションを見つけてくれたら、それを PCI-IDE コードでサポートする出発点としては最適だというのをお忘れなく。メーカーの web サイトを見たり、電話をかけたりしてみてほしい。もしその PCI-IDE コントローラがマザーボードの一部なら、そのチップセットをつくったのがだれかを調べて、そいつらのリソースをつついてみよう!
こんなメッセージが表示されたら、DMA サポートは有効になったということだ:
cd0(pciide0:1:0): using PIO mode 3, DMA mode 1 (using DMA data transfers)
これはつまり pciide0, channel 1, drive 0 (これは ATAPI CD-ROMらしいね) が DMA データ転送を使っているということだ。
注記:
DMA は wdc* では、DMA チャンネル (drq) が指定されていないと機能しない。ハードディスクコントローラの「標準」drqs がなんなのか、よくわからない。有効にするには
wdc0 at isa? port 0x1f0 irq 14 flags 0x00
非-ultra DMA だと、必ずしもプロセッサIOに比べて帯域幅が増大するとは限らない。でも、CPU の負荷はかなり下がる。
[FAQ トップに戻る] [11.0 - パフォーマンスのチューニング] [13.0 - IPSec]
www@openbsd.org 翻訳上の問題はhiyori13@alum.mit.edu
$OpenBSD: faq12.html,v 1.24 1999/12/06 21:45:57 chris Exp $