Top過去ログ目次掲示板

作成日:2004年01月24日 作成:おやじ
掲示板で過去に質問された内容です。

No.2457 hda: dma_timer_expiry :dma status == 0x21 エラーで固まります。


No.2457 投稿時間:2004年01月24日(Sat) 15:13 投稿者名:yy URL:
タイトル:hda: dma_timer_expiry :dma status == 0x21 エラーで固まります。

宜しくお願い致します。

FujitsuのノートPC(Windows2000)
http://www.fmworld.net/biz/fmv/product/former/blb0002/soft.html#nu
の645NU6C/WにRedHat9をインストールしました。

時々
hda: dma_timer_expiry :dma status == 0x21
hda: timeout waiting for DMA
hda: timeout waiting for DMA
hda: (__ida_dma_test_irq) called while not waiting

というエラー(?)をログイン画面に吐いて固まっている事があります。
これは何が原因なのでしょうか?

下記は色々と試してみた結果ですが、エラーに関係有りますかね?


# 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 = 8 (on)
geometry = 2432/255/63, sectors = 39070080, start = 0

# hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 64 MB in 3.12 seconds = 20.51 MB/sec

# hdparm -c1 -t /dev/hda
/dev/hda:
setting 32-bit IO_support flag to 1
IO_support = 1 (32-bit)
Timing buffered disk reads: 64 MB in 3.11 seconds = 20.58 MB/sec

# /sbin/hdparm -c1 /dev/hda
/dev/hda:
setting 32-bit IO_support flag to 1
IO_support = 1 (32-bit)

# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 2432/255/63, sectors = 39070080, start = 0

# hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 64 MB in 3.17 seconds = 20.19 MB/sec

# hdparm -c1 -t /dev/hda
/dev/hda:
setting 32-bit IO_support flag to 1
IO_support = 1 (32-bit)
Timing buffered disk reads: 64 MB in 3.12 seconds = 20.51 MB/sec


No.2476 投稿時間:2004年01月26日(Mon) 22:49 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:HDDの不良?ですかね。

こんばんは。

> FujitsuのノートPC(Windows2000)
> http://www.fmworld.net/biz/fmv/product/former/blb0002/soft.html#nu
> の645NU6C/WにRedHat9をインストールしました。
>
> 時々
> hda: dma_timer_expiry :dma status == 0x21
> hda: timeout waiting for DMA
> hda: timeout waiting for DMA
> hda: (__ida_dma_test_irq) called while not waiting

恐らく設定の問題というより、ハードもしくはドライバの問題ではないでしょうか。
 DMAについてはご存知かもしれませんが、メモリと外部IO(今回はHDD)間の情報転送を、DMAC(DMAコントローラ)を使ってCPUが介在せずにハードだけで行うもので、例えば、メモリからHDDに書く場合は、書きたいメモリのアドレスやバイト長、HDDに書くべきのアドレス(セクタ等)を指定して、CPUが起動します。そうすると、後はDMACが勝手にメモリから呼び出してHDDに書き込み、終了したらCPUに割り込み(IRQ)を上げて、その時のステータス情報(正常、エラー等)を通知します。
 ところが、上記は、called while not waitingと、起動して待ってもいないのにIRQが上がったといってます。従って、HDDが不調で時々割り込みを上げているのではないかという気がします。fsckでチェックしてみてはどうでしょうか。媒体というより、コントローラの問題のような気がするので、何も出ないかもしれませんが?
 恐らく中古品だと思いますが、もともと業務用の機械ですから、2000年から毎日朝から晩まで起動されていたと思います。くたびれていても不思議ではないと思います。



掲示板▲頁先頭