[linux-users: 108905] Re: kernel : Disabling IRQ#64について

kawasaki @ wwing.net kawasaki @ wwing.net
2012年 7月 26日 (木) 10:27:23 JST


こんにちは。川崎と申します。

うろ覚えなのですが、64番のIRQを割り込みハンドラで処理をした後に
戻り値として
IRQ_HANDLED
を返していらっしゃいますでしょうか?

下記リンクにあるように、割り込みを無視(または処理しなかった)数が
一定数に達すると、その割り込みをDisableしていたような記憶が
あります。
http://lxr.linux.no/linux+v2.6.32.24/kernel/irq/spurious.c#L258

外しているかもしれませんが、ご参考になれば。

--
Tatsuo Kawasaki
kawasaki at wwing.net

Sent: Hiromi Ogawa <h-ogawa @ elwsc.co.jp>:

> ありがとうございます。
>
> 指定の割り込み番号が、何か原因で禁止された事なのですね。
>
> もう少し、情報を取得してみます。
>
> また、不明な箇所が発生したらレスさせて頂きます。
>
>
>
>
>
> (2012/07/24 21:30), KISHIMOTO, Makoto wrote:
>> ドライバを作っておられるということで、基本的な所はわかっておられると
>> 思いますが、何らかの理由で変な(?)タイミングで割り込みが発生したか、
>> カーネルのハンドラが呼ばれるかして、「へんな割り込みが発生したから、
>> この割り込みを禁止にしたぞ」という意味で、カーネルがメッセージを
>> 吐いています。
>>
>> このメッセージにともなう症状としては、必ずしもリセットがかかるとは
>> 限らないので、リセットがかかるということ自体が何らかのヒントかも
>> しれません。
>>
>>> IRQは周辺機器の接続に割り当てられたポート番号みたいなものです。
>>> カーネルのその無効にする設定をオフにすれば有効(enabled)に
>>> なるかと思われますし、ドライバの設定を64以外の空いている番号に
>>> すればそれでも通るかと思われます。
>>
>>>> シリアルボードのドライバを作成したところ、時々
>>>> kernel : Disabling IRQ#64
>>>> が発生して、Linuxがリブートする現象が発生しております。
>>>>
>>>> IRQ#64
>>>> の64は、ボードに割り当てられた割り込みです。
>>>>
>>>> マシンはHP社のGEN8を使用しています。
>>>> Linuxは、Red Hat Enterprise Linux 6.1を使用しています。
>>>>
>>>> /var/log/messagesを見ると
>>>> Disabling IRQ #64に至るまでのCall Traceが残っているのですが、
>>>> 最終的に、__report_bad_irqに至り、"Disabling IRQ #64"となっています。
>>>>
>>>> この "Disabling IRQ #64" は、どの様な時に発生するのでしょうか?
>>>> また、着眼すべきポイントを御存知でしたら御教授願います。
>> _______________________________________________
>> linux-users mailing list
>> linux-users @ listserv.linux.or.jp
>> http://listserv.linux.or.jp/mailman/listinfo/linux-users
>>
>>
>
> _______________________________________________
> linux-users mailing list
> linux-users @ listserv.linux.or.jp
> http://listserv.linux.or.jp/mailman/listinfo/linux-users
>



linux-users メーリングリストの案内