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

菊地 義和 email@hidden
2009年 10月 27日 (火) 21:04:48 JST


yashi 様


菊地です。

理解不足の点がありましたら、ご指摘をお願いします。

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

ioremap_nocache()で取得したアドレスを
ioread32()を使って読取ればキャッシュはされない、
と思っていますが、よいでしょうか。

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

確認しておりません。
1秒毎といっているのは、時簡に1secを設定しているためでしょうか。
また、確認の方法を教えていただけると助かります。

>> なるほど。wait_event_interruptible_timeout()ですとそういう可能性がある
>> わけですね。
>> そうすると、これを使わない方法も考えられますので、試してみます。
>
> いや、そういう訳ではなく、sleepするってそういう事です。

いや、なんとも。。。そうですね、「可能性」ではないですよね。

ここの待ち時間は9msec程度です。

ためしに、while文での処理に置き換えてみましたが、
wait_eventと同じような現象が発生し、while文から抜けて
こないように見えます。

宜しくお願いします。

以上



----- Original Message ----- 
From: "Yasushi SHOJI" <email@hidden>
To: "菊地 義和" <email@hidden>
Cc: "SUZAKU general discussion list" <email@hidden>
Sent: Tuesday, October 27, 2009 7:00 PM
Subject: Re: [Suzaku:01658] Re: Linuxフリーズ時の調査方法について


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