Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

6363
1898
209235


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

1 2

[리눅스커널][ftrace] 커널 타이머: jiffies와 Soft IRQ 타이머 서비스 처리 횟수 확인

Overviewftrace는 리눅스 커널의 마법과 같은 도구입니다. 그래픽 효과가 없는 텍스트 포멧의 리눅스의 단점을 대체하기 충분하다고 봅니다. 이번에는 동적 타이머와 Soft IRQ 타이머 서비스를 동시에 ftrace 로그를 통해 분석해 보겠습니다. 이 디버깅은 라즈베리 파이에서 수행했다는 사실을 참고합시다.결론먼저, 요점부터 말하겠습니다....

[리눅스커널] thread_info 구조체의 preempt_count - Soft IRQ 컨텍스트 실행

Soft IRQ 컨텍스트의 시작 상태 저장프로세스가 Soft IRQ 서비스를 처리 중이면 preempt_count 필드에 SOFTIRQ_OFFSET 매크로를 저장합니다. 다음 그림을 보면서 Soft IRQ 컨텍스트의 실행 시작을 설정하는 과정을 알아보겠습니다. 그림 4.18 Soft IRQ 컨텍스트 설정 시의 함수 흐름그림 4.18에서 irq_...

[리눅스커널] softirq: SOFTIRQ_MASK의 정체

SOFTIRQ_MASK 분석하기 SOFTIRQ_MASK 가 어떤 값인지 알아보기 위해 이 플래그의 선언부를 확인해봤습니다.다음은 SOFTIRQ_MASK의 선언부입니다.https://elixir.bootlin.com/linux/v4.19.30/source/include/linux/preempt.h#define SOFTIRQ_MASK (__IRQ_...

[리눅스커널][SoftIRQ] 디버깅: ftrace Soft IRQ 이벤트 소개

6.12.1 ftrace Soft IRQ 이벤트 소개이번 시간에 Soft IRQ 실행 흐름을 추적하는 ftrace event를 소개합니다.ftrace는 커널의 주요 동작을 추적하며 이를 이벤트로 정의합니다. Soft IRQ 도 커널의 중요 기능이니 ftrace에서 다음 이벤트를 제공합니다.- softirq_raise: Soft IRQ 서비스를 요청- s...

[리눅스커널][SoftIRQ] Soft IRQ 컨택스트에 대해서 - in_softirq()

6.10 Soft IRQ 컨택스트에 대해서인터럽트가 발생한 후 인터럽트 핸들러가 실행 중인 상태를 인터럽트 컨택스트라고 합니다. 이와 마찬가지로 Soft IRQ 서비스를 실행 중인 상태를 Soft IRQ 컨택스트라고 부릅니다. 이번 절에서는 Soft IRQ 컨택스트 시작 시점과 관련 자료구조에 대해서 살펴보겠습니다.6.10.1 Soft IRQ 컨택스트 ...

[리눅스커널][SoftIRQ] ksoftirqd 스레드란

6.9 ksoftirqd 스레드이번 절에서는 Soft IRQ 처리용으로 생성된 ksoftirqd 스레드에 대해 살펴봅니다. ksoftirqd 스레드 생성과정과 동작 원리를 배워봅시다.6.9.1 ksoftirqd 스레드란ksoftirqd이란 per-cpu 타입 프로세스입니다. 즉 CPU 개수만큼 생성해서 정해진 CPU 내에서만 실행합니다. ksoftirq...

[리눅스커널]Soft IRQ 서비스는 누가 언제 처리하나?(2/2): __do_softirq() 분석

6.8.3 Soft IRQ 서비스 실행이어서 Soft IRQ 서비스를 실행하는 세부 코드를 살펴보겠습니다.__do_softirq() 함수 분석하기이제 Soft IRQ 의 핵심 코드인 __do_softirq() 함수를 분석할 차례입니다. 분석할 전체 코드는 다음과 같습니다.1 asmlinkage __visible void __softirq_ent...

[리눅스커널][SoftIRQ] Soft IRQ 서비스는 누가 언제 처리하나?(1/2)

6.8 Soft IRQ 서비스는 누가 언제 처리하나?이제 Soft IRQ 기법의 핵심인 Soft IRQ 서비스를 처리하는 흐름을 살펴볼 차례입니다. Soft IRQ 서비스는 언제 처리할까요? 아래 그림과 같이 인터럽트 핸들러를 처리하는 인터럽트 서비스 루틴이 끝나는 시점에 Soft IRQ 서비스 처리를 시작합니다.   [그...

[리눅스커널][SoftIRQ] Soft IRQ 서비스는 언제 요청하나?

6.7 Soft IRQ 서비스는 언제 요청하나?이번 시간에는 Soft IRQ 서비스를 어떻게 요청하는지 배워 보겠습니다. 우리는 이전 절에서 Soft IRQ를 등록하는 과정을 배웠습니다. 다음 코드와 같이 open_softirq() 함수를 써서 TIMER_SOFTIRQ 타입의 Soft IRQ 서비스를 등록했습니다.[https://elixir.bootli...

[리눅스커널] Soft IRQ 서비스에 대해서

6.6 Soft IRQ 서비스이번 절에서는 Soft IRQ 서비스의 의미와 서비스 등록 과정에 대해 살펴봅니다. 6.6.1 Soft IRQ 서비스 알아보기 Soft IRQ를 설명하면서 낯선 용어를 설명했는데, 이제부터 그 의미를 하나하나씩 살펴 보겠습니다. Soft IRQ 서비스란 용어를 소개합니다.Soft IRQ 서비스를 빨리 이해하...
1 2