SOFTIRQ

Category
아이템: SOFTIRQ(12)
포스트 갯수12

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

By Guillermo Austin Kim | 2020년 4월 21일 | 
Overview ftrace는 리눅스 커널의 마법과 같은 도구입니다. 그래픽 효과가 없는 텍스트 포멧의 리눅스의 단점을 대체하기 충분하다고 봅니다. 이번에는 동적 타이머와 Soft IRQ 타이머 서비스를 동시에 ftrace 로그를 통해 분석해 보겠습니다. 이 디버깅은 라즈베리 파이에서 수행했다는 사실을 참고합시다. 결론 먼저, 요점부터 말하겠습니다. 이 ftrace 메시지를 분석한 후 알게 될 내용은 다음과 같습니다. ■ 1초 동안에 지피스는 100번 업데이트된다.(라즈베리 파이 기준) ■ 1초에 Soft IRQ 타이머 서비스를 요청하는 횟수는 13번(100번 미만)이다. ■ 1초에 Soft IRQ 동적 타이머를 실행하는 횟수는 13번이다. 먼저 커널

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

By Guillermo Austin Kim | 2020년 2월 7일 | 
SOFTIRQ_MASK 분석하기 SOFTIRQ_MASK 가 어떤 값인지 알아보기 위해 이 플래그의 선언부를 확인해봤습니다.다음은 SOFTIRQ_MASK의 선언부입니다. SOFTIRQ_MASK (__IRQ_MASK(SOFTIRQ_BITS) << SOFTIRQ_SHIFT) #define SOFTIRQ_SHIFT (PREEMPT_SHIFT + PREEMPT_BITS) 보시다시피 SOFTIRQ_MASK 매크로는 __IRQ_MASK, SOFTIRQ_BITS, SOFTIRQ_SHIFT와 같이 생소한 매크로로 구성돼 있어 바로 어떤 값인지 확인하기 어렵습니다.그래서 각각의 매크로의 선언부를 따라 가다 보면 시간이 오래 걸리는 경우가 많습니다. SOFTIRQ_MASK 매크로를 확인하기 위한 패치 코드

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

By Guillermo Austin Kim | 2019년 4월 16일 | 
6.12.1 ftrace Soft IRQ 이벤트 소개 이번 시간에 Soft IRQ 실행 흐름을 추적하는 ftrace event를 소개합니다. ftrace는 커널의 주요 동작을 추적하며 이를 이벤트로 정의합니다. Soft IRQ 도 커널의 중요 기능이니 ftrace에서 다음 이벤트를 제공합니다.- softirq_raise: Soft IRQ 서비스를 요청- softirq_entry: Soft IRQ 서비스 실행 시작- softirq_exit: Soft IRQ 서비스 실행 마무리 먼저 ftrace 이벤트를 활성화하는 방법을 알아보고 ftrace에서 각 로그를 분석해보겠습니다. Soft IRQ ftrace 이벤트 켜기 Soft IRQ 이벤트는 다음 명령어로 활성화할 수 있습니다."echo 1 >

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

By Guillermo Austin Kim | 2019년 4월 14일 | 
6.10 Soft IRQ 컨택스트에 대해서 인터럽트가 발생한 후 인터럽트 핸들러가 실행 중인 상태를 인터럽트 컨택스트라고 합니다. 이와 마찬가지로 Soft IRQ 서비스를 실행 중인 상태를 Soft IRQ 컨택스트라고 부릅니다. 이번 절에서는 Soft IRQ 컨택스트 시작 시점과 관련 자료구조에 대해서 살펴보겠습니다. 6.10.1 Soft IRQ 컨택스트 시작점은 어디인가? Soft IRQ 컨택스트는 Soft IRQ 서비스를 실행할 때 활성화됩니다. Soft IRQ 서비스는 __do_softirq() 함수에서 실행하니 다음 코드를 보면서 Soft IRQ 컨택스트 활성화 시점을 알아봅시다.[https://elixir.bootlin.com/linux/v4.19.30/source/kernel/softirq.