softirq context에서 다른 hw interrupt가 수신되는 경우 질문입니다.
글쓴이: roskeo / 작성시간: 수, 2022/06/22 - 3:52오후
안녕하세요 커널 공부를 하고있는 커린이 입니다.
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호출하지 않고 다시 원래 컨텍스트로 돌아오게 될까요?
뭔가 두서가 없지만 고수님들의 답변 듣고싶습니다
감사합니다
Forums:
그림을 그려서 이해하면 도움이 됩니다.
그림을 그려서 이해하면 도움이 됩니다.
https://developer.arm.com/documentation/den0024/a/AArch64-Exception-Handling/Interrupt-handling
대략 위 페이지에 있는 그림과 비슷한 그림을 그려서 인터럽트 핸들러의 실행과 시간과 코드 컨택스트의 위치 상관관계를 그려보면 이해에 도움이 될겁니다.
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
댓글 달기