最近は、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を無効にしていますか?
ありがとう。