0

最近は、Robert Love による Linux-Kernel-Development を研究しています。

softirq のメカニズムを説明する段落があります。

softirq ハンドラは、割り込みを有効にして実行され、スリープできません。ハンドラの実行中、現在のプロセッサのソフトIRQは無効になります。ただし、別のプロセッサは他のソフトIRQを実行できます。

「現在のプロセッサのソフトIRQが無効になっています」の意味がわかりません。

これは、__do_softirq を実行しているときに、softirq_pending の一部のビットが再び発生しても、__do_softirq 関数を中断できないということですか? はいの場合、__do_softirq のどのステートメントがこの種の保護を行いますか?

__do_softirq のコードをトレースすると、__local_bh_disable 関数と __local_bh_enable 関数のペアがあることがわかりました。

彼らはローカルのsoftirqを無効にしていますか?

ありがとう。

4

1 に答える 1