Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

76261
1501
219118


태그 : IRQThread 요약보기전체보기목록닫기

1

[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드의 전체 실행 흐름 정리

지금까지 IRQ 스레드 핸들인 irq_thread() 함수에서 irq_thread_fn() 함수를 호출해 IRQ 스레드 핸들러 함수를 호출하는 과정을 살펴봤습니다. 이번에는 배운 내용을 정리하는 차원으로 IRQ 스레드 전체 실행 흐름을 보면서 정리하는 시간을 갖겠습니다.           &...

[리눅스커널][인터럽트후반부] IRQ 스레드는 언제 생성할까?

6.3 IRQ 스레드는 어떻게 생성할까?IRQ 스레드를 생성하려면 적절한 인자와 함께 request_threaded_irq() 함수를 호출해야 합니다.request_threaded_irq() 함수의 선언부 코드를 먼저 보겠습니다. [https://elixir.bootlin.com/linux/v4.19.30/source/include/linux/...

[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드 소개

리눅스 커널을 익히는 과정에서 만나는 걸림돌 중 하나가 어려운 용어입니다. 어려운 개념을 낯선 용어로 설명하니 이해하기 어려운 것 같습니다. IRQ 스레드에 대해 소개하기 전 IRQ란 용어부터 알아볼까요? IRQ 스레드(threaded IRQ)란IRQ 스레드는 IRQ와 스레드의 합성어입니다. 먼저 IRQ에 대해서 알아볼까요? IRQ는 Inter...

[리눅스커널] 인터럽트 후반부 처리(Bottom Half) 소개

이전에 리눅스 커널이 인터럽트를 어떻게 처리하는지 배웠습니다. 배운 내용을 잠깐 복습해볼까요? 핵심 개념은 다음과 같습니다.첫째, 인터럽트가 발생하면 커널은 실행 중인 프로세스를 멈추고 인터럽트 벡터를 실행해서 인터럽트 핸들러를 실행합니다.둘째, 인터럽트 핸들러는 짧고 빨리 실행해야 합니다.셋째, 인터럽트를 처리하는 구간이 인터럽트 컨택스트인데 이를 i...

[리눅스커널] 인터럽트 후반부 처리: 라즈베리파이에서 IRQ 스레드 생성 과정 디버깅하기

라즈베리파이에서 IRQ 스레드 생성 과정 디버깅하기이번 절에선 request_threaded_irq() 함수를 호출하면 결국 kthread_create() 함수를 실행해서 IRQ 스레드를 생성하는 과정까지 짚어 봤습니다. 이제 디버깅 과정을 통해 배운 내용을 다지는 시간을 갖겠습니다.먼저 디버깅을 위한 패치 코드를 소개합니다. +기호로 볼드체로...
1