- - PR -
APICでのIRQ優先順位について
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-07-07 18:22
こんにちは。
質問する場所がわからなかったので、ここで質問させていただきます。 割り込みの優先順位なのですが、 割り込みコントローラがPICの場合は、2がslaveとのカスケードなので 0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7 であるということが分かりました。 しかし、APICの場合どこからどこまでがslaveなのかが分からず、 IRQの優先順位がわかりません。 知っている方がいたら教えてください。 よろしくお願いいたします。 | ||||
|
投稿日時: 2004-07-07 21:22
確か、ローテートの機能とかあったと思ったから・・・
そもそも、カスケードの概念があるかどうかも判らないし。 考えてもしようが無いこと、と割り切ってしまうのが適当でしょう。 そうそう、ユーザーが触れるものでもないし。 | ||||
|
投稿日時: 2004-07-07 22:32
回答ありがとうございます。
ローテートとかあるんですか。 うーん、そうなるとますますわからないですね。 たしかにこんなとこ考えたくはないのですが、 パケットのキャプチャを行うのでNICの優先順位を出来るだけ上げて、 キャプチャのロスを少しでもなくさなきゃいけないのです。 | ||||
|
投稿日時: 2004-07-07 22:41
そのあたりになると、もう基本的にはドライバが全部管理する範囲になります。
ユーザーによるチューニングのレンジは非常に狭いのではないかと思います。 まあ、調べるのであれば、IntelのHPにPDFの資料がいろいろ有りますから、 ハードウェアのマニュアルを探してみるのが一番適当でしょう。 一応、それなりの記述はあるはずです。あとは、DDKの資料とかに、割り込み管理の 記述があれば、もしかしたら役に立つかも。ただ、HALとかの作りに依存するかも。 いずれにしろ、ISA時代のように、高いレベルの割り込みを割り当てて、というような 簡単な話ではありません。 | ||||
|
投稿日時: 2004-07-08 00:05
やっぱりそうですか。
とりあえずIntelのHPを調べてみます。 いろいろとありがとうございました。 | ||||
|
投稿日時: 2004-07-08 00:30
ちなみに、手元に落としてあるので見てみたら、APICが絡んでくるのはチップセットですかね。
ノースだかサウスだかのブリッジチップのドキュメントを見てみるのでは。 これとBIOSとの組み合わせで、どう実装されているのかは千差万別だったり・・・ ドライバだけでなくBIOSも絡んできそうですね。だから、マザーごとに挙動が 違ったり。 | ||||
|
投稿日時: 2004-07-08 01:01
用途は、NICによるパケットのキャプチャですか? とすると、現在、 NICのルーチンの優先度が低くて、パケットのキャプチャロスが発生して いるということでしょうか? 経験上、1GHzとかそれ以上のCPUがあれば、100Mbpsでのキャプチャで ロスが発生したことはないように思うのですが(netstat -eで確認できる)、 本当に割り込み処理がボトルネックになっているのでしょうか? そもそも、いくら割り込み処理の優先度を上げたとしても、NICからの パケットを受け取る側(アプリケーション側)が、バッファがいっぱいに なる前にデータを引き取らなければ、結局パケットはどこかであふれて 捨てられることになると思います。つまり、割り込み処理だけじゃなくて、 アプリケーションも含めて、システム全体で余裕のある状態になって いないと、意味がないと思うのですが、いかがでしょうか。 それに、いまどきのイーサネットコントローラは内部にバッファを64Kbytes とか、それ以上持っていると思います。とすると、100Mbpsで計算しても、 5msec秒以上は持つのではないでしょうか。割り込み処理の優先度が少々 遅くて、1msecとかそれ以上滞ったとしても、十分間に合うような気が するのですが。もちろん、上位のアプリケーションの優先度もいくらか 高くしたり、Windows OSのネットワークモニタのように、専用キャプチャモード (画面表示を止めて、キャプチャだけを優先的に行うモード)みたいに、 余計な処理をさせないといった工夫も併用すれば、よいのではないかと 思います。 以上、余計なことだったらすみません。 | ||||
1
