안녕하세요 커널 공부를 하고있는 커린이 입니다.
softirq process에 대해서 이해가 안가는 것이 있는데요
softirq 처리 루틴이 실행되다가 인터럽트(hardirq)가 수신되면 해당 인터럽트 서비스 루틴이 돌게 됩니다.
그러면 cpu제어가 hardirq로 넘어갈텐데요
만약 수신한 인터럽트의 서비스 루틴에 softirq bit을 set하는 부분(raise_softirq_irqoff)이 있다면 이 ISR이 끝나고 irq_exit을 호출하여 softirq를 실행하게 될텐데
이렇게 되면 기존에 실행하던 softirq 처리 루틴은 언제 실행되게 될까요?
softirq 실행 도중 interrupt가 수신되면 해당 ISR에서 softirq bit만 set 해주고 irq_exit호출하지 않고 다시 원래 컨텍스트로 돌아오게 될까요?
뭔가 두서가 없지만 고수님들의 답변 듣고싶습니다
감사합니다