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

Yasushi SHOJI email@hidden
2009年 10月 27日 (火) 18:15:10 JST


At Tue, 27 Oct 2009 17:22:54 +0900,
菊地 義和 wrote:
[...]
> フリーズしていると思われる箇所は
> マクロ関数「wait_event_interruptible_timeout(Q,条件,時間)」
> と思われます。
> 
> 頻繁に実行される関数で、正常に実行されていること
> がほとんどなのですが、まれにこの行でフリーズする
> ようです。この行のあとのprintk()が実行されないところ
> からそう判断しております。
> 
> 先に教えていただいている方法、もしくは異なる方法で
> 上記関数の動作を観察する方法など、ご存知でしたら
> お教えいただけないでしょうか。

- どこ(システムコール)から呼び出されているか分りますか?
- 関数が呼ばれたときの条件と時間は、どうですか?
- 時間は経過していますか/timerは動いていますか?

wait_... の後の関数が実行されないからと言って、そこで壊れているか分りま
せん。たとえば、wait...()が呼ばれた結果、スケジューラーが動いて、
他の kernel threadが動き、なにか壊しているかもしれません。

なので、スケジューラーに手を入れて、実行しているプロセス IDを表示するよ
うにすると良いかもしれません。

# う〜ん、mbには backtrace()が無いのか…。
-- 
          yashi



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