[Suzaku:01661] Re: Linuxフリーズ時の調査方法について

Yasushi SHOJI email@hidden
2009年 10月 27日 (火) 19:00:48 JST


At Tue, 27 Oct 2009 18:42:32 +0900,
菊地 義和 wrote:
> 
> > - どこ(システムコール)から呼び出されているか分りますか?
> 
> 開発したデバイスドライバでコールしてます。

あら。

> > - 関数が呼ばれたときの条件と時間は、どうですか?
> 
> マクロ関数「wait_event_interruptible_timeout(Q,条件,時間)
> について記述します。
> 
> Qは初期化してます。
> 
> 条件は2つあり、どちらもカスタムIPのレジスタを参照しております。
> 1つは、ある値以上になったらwaitを抜ける。
> もうひとつは、0になったらwaitを抜ける。

IPのレジスタが memory map されているってことですよね? これ cache され
るってことはないですか?

1 秒毎に、FPGAへの readが 発生しているのは確認されていますか?

> > wait_... の後の関数が実行されないからと言って、そこで壊れているか分りま
> > せん。たとえば、wait...()が呼ばれた結果、スケジューラーが動いて、
> > 他の kernel threadが動き、なにか壊しているかもしれません。
> 
> なるほど。wait_event_interruptible_timeout()ですとそういう可能性がある
> わけですね。
> そうすると、これを使わない方法も考えられますので、試してみます。

いや、そういう訳ではなく、sleepするってそういう事です。

sleepするのが嫌な場合、またはごく短かい時間だけ待ちたい場合は、
busyloopでも良いと思います。
-- 
           yashi



suzaku メーリングリストの案内