커널

포스트: 228|조회수: 0|CIVILIZATION
Items

Posts

228 posts

[라즈베리파이] Soft IRQ 서비스 및 서비스 핸들러 등록(코드 분석)

Guillermo Austin Kim|2018년 7월 2일

# 인터럽트 후반부 처리1 IRQ Thread(threaded IRQ) 란 2. 인터럽트 후반부 처리(Bottom Half) 소개3. IRQ Thread는 언제 생성할까?[1] 4. IRQ Thread는 언제 생성할까?[2] 5. ksoftirqd 쓰레드란6. Soft IRQ 소개7. Soft IRQ 서비스 및 서비스 핸들러 등록(코드 분석) Soft IRQ를 설명하면서 낯선 용어를 설명했는데, 이제부터 그 의미를 하나하나씩 살펴 보겠습니다. Soft IRQ 서비스란 용어부터 배워볼까요? Soft IRQ 서비스를 빨리 이해하려면 코드를 먼저 봐야 합니다. Soft IRQ 서비스는 아래 enum으로 정의한 코드와 같습니다.[include/linux/interrupt.h]enum{ HI_SOFTIRQ=0

[라즈베리파이] Soft IRQ 소개

[라즈베리파이] Soft IRQ 소개

Guillermo Austin Kim|2018년 6월 28일

Soft IRQ는 리눅스 커널 시스템 핵심 기능 중 하나입니다. 리눅스 커널의 타이머, 스케쥴링은 물론 네트워크 시스템과 연관돼 있죠. 그만큼 Soft IRQ는 구조가 복잡해서 전체적인 큰 그림을 그리며 개념을 익히기 힘듭니다. 하지만 Soft IRQ 핵심 개념은 뭐니해도 인터럽트 후반부 처리라고 할 수 있습니다. 그래서 이번 절에서는 Soft IRQ를 인터럽트 후반부 처리 중심으로 알아볼 예정입니다. 이 개념을 정확히 익힌 다음 Soft IRQ에서 프로세스, 타이머 혹은 네트워크 시스템을 어떻게 처리하는지 알아보는 것이 좋습니다. Soft IRQ에 대해 알아보기 전에 우선 Soft IRQ를 왜 알아야 하는지 생각해 봅시다.1. 리눅스 커널 입문자를 벗어나 중급 수준 개발자가 되려면 Soft IR

[리눅스커널][Trace32] wakelock 디버깅 - container_of

Guillermo Austin Kim|2018년 6월 26일

[crash-utility] wakelock 디버깅(rbtree: wakelocks_tree)[crash-utility]wakelock - rbtree debugging(디버깅) [리눅스커널][Trace32] wakelock 디버깅 - container_of[Kernel] wakelock debug patch 이번 시간에는 wakeup_sources이란 링크드 리스트를 통해 wakelock 디버깅을 합시다.이전에는 crash-utility를 썻는데 이번에는 Trace32를 쓰겠습니다. 개발자는 다양한 툴을 써야 한 가지 툴에 종속된 노예 개발자가 되는 것을 피할 수 있습니다.또한 각 툴의 장점을 잘 활용할 수도 있습니다. 먼저, 다음 T32 명령어를 입력해서 offsetof와 container_of

[리눅스] printk 아규먼트 포멧

Guillermo Austin Kim|2018년 6월 25일

printk에 %로 어떤 형식을 지정할 지 헷갈릴 때가 많습니다.이럴 때는 다음 형식을 참고하면 됩니다.If variable is of Type, use printk format specifier:------------------------------------------------------------ int %d or %x unsigned int %u or %x long %ld or %lx unsigned long %lu or %lx long long %lld or %llx unsigned long long %llu or %llx size_t %zu or %zx ssize_t %zd or %zx s32 %d or %x u32 %u or %x s64 %lld or