上半身と下半身の概念を理解しているうちに、ある疑問に出会いました。
これが私の理解です:上半分と下半分は割り込みコンテキストで実行されます。唯一の違いは、下半分は割り込みを有効にして実行し、上半分は対応する irq を無効にして実行することです (これは、SA_INTERRUPT
フラグを使用して克服できます)。
質問: 上半分のハンドラーから戻る直前にreturn_from_intr
呼び出されます。現在、スケジューラが呼び出され、保留中のものがある場合は下半分が実行されます。が呼び出されたのでreturn_from_intr
、どのように下半分を割り込みコンテキストで実行できますか? 割り込みモードではなく、カーネル モードになりますか?
間違っている場合は修正してください。