[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 メーリングリストの案内