__DO_SOFTIRQ
Posts
2 posts![[라즈베리파이] Soft IRQ 서비스는 누가 언제 처리하나? [2] - __do_softirq() 분석](https://img.zoomtrend.com/2018/07/15/c0246238_5b41897524ac4.png)
[라즈베리파이] Soft IRQ 서비스는 누가 언제 처리하나? [2] - __do_softirq() 분석
이제 Soft IRQ 의 핵심 코드인 __do_softirq 함수를 분석할 차례입니다. 전체 코드는 다음과 같습니다.1 asmlinkage __visible void __softirq_entry __do_softirq(void)2{3unsigned long end = jiffies + MAX_SOFTIRQ_TIME;4unsigned long old_flags = current->flags;5int max_restart = MAX_SOFTIRQ_RESTART;6struct softirq_action *h;7bool in_hardirq;8__u32 pending;9int softirq_bit;10//...1112pending = local_softirq_pending();13account_
![[라즈베리파이] Soft IRQ 서비스는 누가 언제 처리하나?[1]](https://img.zoomtrend.com/2018/07/11/c0246238_5b2f2147d745f.png)
[라즈베리파이] Soft IRQ 서비스는 누가 언제 처리하나?[1]
이제 Soft IRQ 기법의 하이라이트인 Soft IRQ 서비스를 처리하는 흐름을 살펴볼 차례입니다. Soft IRQ 서비스는 언제 처리할까요? 아래 Soft IRQ 전체 흐름도와 같이 인터럽트 핸들러를 처리하는 인터럽트 서비스 루틴이 끝나는 시점에 Soft IRQ 서비스 처리를 시작합니다. 그래서 Soft IRQ 서비스 처리를 시작하는 코드를 점검하려면 인터럽트 서비스 루틴이 끝나는 코드부터 확인해야 합니다. 이번 절에서는 Soft IRQ 전체 흐름도에서 볼드체로 된 부분을 점검할 예정이니 눈여겨보세요. 인터럽트 서비스 루틴이 끝나는 코드가 __handle_domain_irq 함수에서 실행하니 우선 이 함수부터 분석해야 합니다. 같이 볼 코드는 다음과 같습니다. 1 int __handle_domai



