Linux Kernel(4.14) Hacks

rousalome.egloos.com

포토로그 Kernel Crash




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

1

[라즈베리파이] Soft IRQ 서비스는 누가 언제 처리하나? [2] - __do_softirq() 분석

이제 Soft IRQ 의 핵심 코드인 __do_softirq 함수를 분석할 차례입니다. 전체 코드는 다음과 같습니다.1 asmlinkage __visible void __softirq_entry __do_softirq(void)2{3 unsigned long end = jiffies + MAX_SOFTIRQ_TIME;4 unsigned long old_...

[라즈베리파이] Soft IRQ 서비스는 누가 언제 처리하나?[1]

이제 Soft IRQ 기법의 하이라이트인 Soft IRQ 서비스를 처리하는 흐름을 살펴볼 차례입니다. Soft IRQ 서비스는 언제 처리할까요? 아래 Soft IRQ 전체 흐름도와 같이 인터럽트 핸들러를 처리하는 인터럽트 서비스 루틴이 끝나는 시점에 Soft IRQ 서비스 처리를 시작합니다. 그래서 Soft IRQ 서비스 처리를 시작하는 코드를 점검하려...

[라즈베리파이] Soft IRQ 서비스는 언제 요청하나?

이번 시간에는 Soft IRQ 서비스를 어떻게 요청하는지 배워 보겠습니다. 우리는 이전에 Soft IRQ를 등록하는 과정을 배웠습니다. 다음 코드와 같이 open_softirq 함수를 써서 TIMER_SOFTIRQ 타입의 Soft IRQ 서비스를 등록했습니다.1 void __init init_timers(void)2 {3 init_timer_cpus()...

[라즈베리파이] Soft IRQ 서비스 및 서비스 핸들러 등록(디버깅)

라즈베리파이에서 동작 확인라즈베리안에서 Soft IRQ 등록하는지 알려면 어떻게 해야 할까요? 다음 패치를 적용 후 라즈베리파이를 실행하면 됩니다.diff --git a/kernel/softirq.c b/kernel/softirq.cindex 3f3fbc230..b0e75e8d0 100644--- a/kernel/softirq.c+++ b/kernel/...

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

Soft IRQ를 설명하면서 낯선 용어를 설명했는데, 이제부터 그 의미를 하나하나씩 살펴 보겠습니다. Soft IRQ 서비스란 용어부터 배워볼까요?Soft IRQ 서비스를 빨리 이해하려면 코드를 먼저 봐야 합니다. Soft IRQ 서비스는 아래 enum으로 정의한 코드와 같습니다.[include/linux/interrupt.h]enum{ HI_SOFTI...

[라즈베리파이]인터럽트 후반부 처리(Bottom Half) 소개 #CS

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

[라즈베리파이] ksoftirqd 쓰레드란

ksoftirqd이란 per-cpu 타입 프로세스입니다. 즉 CPU 개수만큼 생성해서 정해진 CPU 내에서만 실행합니다. ksoftirqd 프로세스는 커널 쓰레드로 Soft IRQ 서비스를 쓰레드 레벨에서 처리합니다. 리눅스 커널을 탑재한 어떤 시스템에서도 볼 수 있는 친근한 프로세스입니다. 먼저 ksoftirqd 쓰레드를 같이 확인하겠습니다....

[Linux][Kernel] softirq - 호출되는 모듈 (h->action)

# 인터럽트 후반부 처리1 IRQ Thread(threaded IRQ) 란  2. 인터럽트 후반부 처리(Bottom Half) 소개3. IRQ Thread는 언제 생성할까?[1] 4. IRQ Thread는 언제 생성할까?[2]  5. ksoftirqd 쓰레드란6. Soft IRQ 소...

[Linux][Kernel] softirq overview (1)

bottom half 기법의 핵심인 Soft IRQ 기법에 대해서 잠깐 짚어보겠습니다.보통 인터럽트 후반부 처리로 워크큐를 많이 쓰는데 리눅스 소스 코드를 보면 Soft IRQ도 많이 씁니다.워크큐는 워커 쓰레드가 프로세스 레벨에서 실행하므로 인터럽트 후반부 처리를 빠른 시간 내 처리하지는 않습니다. 그런데 Soft IRQ는 인터럽트 후반부 처리를 빠른...
1