728x90
반응형
- 두 API 모두 인터럽트를 처리하는 ISR 을 등록하는 경우에 사용하며,
ISR 타입 및 등록 방법은 동일하다.
request_irq : 주로 EINT 를 처리하는 경우에 사용하며, interrupt context 로의 context switching 이 발생한다. 즉, irq 를 등록할 때 지정하는 ISR 은 interrupt context 에서 실행 됨을 의미한다.
request_threaded_irq : 마찬가지로 EINT 를 처리하는 경우에 사용하며, interrupt context 로의 context switching 이 발생하지 않는다. kernel thread 를 생성하여 kthread 의 수행 함수가 등록시에 사용하는 ISR 타입의 함수가 될 뿐이다. bottom half 기법이라 볼 수 있으며, tasklet 이나 workQ 를 대체 가능한 구조이다.
- 언제 사용하나?
request_irq : irq 발생시 바로 isr 을 처리해주고자 할 때 사용 가능하다. 처리하고자 하는 인터럽트가 빨리 실행되어야 할 때 등록할 수 있다. tophalf 의 형태라 볼 수 있다.
request_threaded_irq : 주로 uevent 나 usermode helper 를 연동해서 사용하고자 할 때 사용 가능하다.
일례로 request_irq 로 등록한 isr 에서 uevent 나 usermode helper를 이용하면?
당신의 리눅스 machine 을 자살시키는 좋은 방법이 될 것이다.
ISR 타입 및 등록 방법은 동일하다.
request_irq : 주로 EINT 를 처리하는 경우에 사용하며, interrupt context 로의 context switching 이 발생한다. 즉, irq 를 등록할 때 지정하는 ISR 은 interrupt context 에서 실행 됨을 의미한다.
request_threaded_irq : 마찬가지로 EINT 를 처리하는 경우에 사용하며, interrupt context 로의 context switching 이 발생하지 않는다. kernel thread 를 생성하여 kthread 의 수행 함수가 등록시에 사용하는 ISR 타입의 함수가 될 뿐이다. bottom half 기법이라 볼 수 있으며, tasklet 이나 workQ 를 대체 가능한 구조이다.
- 언제 사용하나?
request_irq : irq 발생시 바로 isr 을 처리해주고자 할 때 사용 가능하다. 처리하고자 하는 인터럽트가 빨리 실행되어야 할 때 등록할 수 있다. tophalf 의 형태라 볼 수 있다.
request_threaded_irq : 주로 uevent 나 usermode helper 를 연동해서 사용하고자 할 때 사용 가능하다.
일례로 request_irq 로 등록한 isr 에서 uevent 나 usermode helper를 이용하면?
당신의 리눅스 machine 을 자살시키는 좋은 방법이 될 것이다.
728x90
반응형
댓글