IRQ_HANDLER_EXIT

Category
아이템: 
포스트 갯수2

[리눅스커널][인터럽트] ftrace로 인터럽트 핸들러 함수를 바로 파악하기

By Guillermo Austin Kim | 2019년 4월 12일 | 
5.7.3 ftrace로 인터럽트 핸들러 함수를 바로 파악하기 우리는 다음 __handle_irq_event_percpu 함수 13번째 코드에서 인터럽트 핸들러가 호출된다고 배웠습니다. 1 irqreturn_t __handle_irq_event_percpu(struct irq_desc *desc, unsigned int *flags)2 {3 irqreturn_t retval = IRQ_NONE;4 unsigned int irq = desc->irq_data.irq;5 struct irqaction *action;67 record_irq_time(desc);89 for_each_action_of_desc(desc, action) {10 irqreturn_t res;1112 trace_irq_hand

[라즈베리파이] 인터럽트 디버깅 - ftrace 인터럽트 이벤트 #CS

By Guillermo Austin Kim | 2018년 5월 28일 | 
라즈베리안 리눅스 커널은 아래 ftrace 로그를 볼 수 있는 컨피그가 기본 설정돼 있습니다. 그래서 ftrace만 설정하면 됩니다. 그럼ftrace로 인터럽트 동작을 어떻게 확인할 수 있을까요? ftrace event 중에 인터럽트가 있으니 다음 명령어로 해당 event를 키면 됩니다. echo 1 > /sys/kernel/debug/tracing/events/irq/irq_handler_entry/enableecho 1 > /sys/kernel/debug/tracing/events/irq/irq_handler_exit/enable 다음과 같은 코드를 작성하고 irq_ftrace.sh란 스크립트로 저장한 후 이 스크립트를 실행하면 ftrace로 인터럽트를 로그를 볼 수 있습니다. [irq_ft