[리눅스커널][인터럽트후반부] IRQ 스레드 동작 확인하기
By Guillermo Austin Kim | 2019년 2월 27일 |
IRQ 스레드 동작 확인하기 이제 실제 라즈베리안에서 IRQ Thread가 어떻게 수행되는지 ftrace 로그로 분석할 시간입니다. 이를 위해 다음과 같이 ftrace 로그를 설정해야 합니다. #!/bin/sh echo 0 > /sys/kernel/debug/tracing/tracing_onsleep 1echo "tracing_off" echo 0 > /sys/kernel/debug/tracing/events/enablesleep 1echo "events disabled" echo secondary_start_kernel > /sys/kernel/debug/tracing/set_ftrace_filter sleep 1echo "set_ftrace_filter init" echo f
[리눅스커널] 메모리관리: 슬랩(Slab) 메모리 할당자를 이루는 주요 개념
By Guillermo Austin Kim | 2019년 7월 30일 |
리눅스 커널 메모리 서브 시스템 개발자들은 다음과 같은 목표로 메모리 성능 개선을 해왔습니다.- 메모리 할당 속도- 메모리가 파편화 최소화 물론 메모리을 빨리 할당하고 되도록 잔여 메모리를 많이 남기려는 목적입니다. 슬랩(Slab)이란 필자가 언급했듯이 커널 메모리 관리의 핵심 중 하나인 '슬랩(Slab)의 개념'은 매우 어렵습니다. 그래서 이해를 돕기 위해 구내 식당을 예를 들면서 '슬랩(Slab)'을 설명하겠습니다. 구내 식당에 온 사람들은 먼저 무엇을 먹을지 선택합니다. 일일이 메뉴를 지정해 알려주면 식당은 이에 맞게 음식을 준비했습니다. 그런데 문제가 생겼습니다. 점심 시간에 손님이 많이 몰려오면 음식을 준비하는 시간이 오래 걸렸기 때문입니다. 그래서 식당 관리자들이 다음과 같은 주제로 궁
[라즈베리파이] 프로세스 - 커널 스레드(Kernel Thread) 소개
By Guillermo Austin Kim | 2018년 10월 29일 |
커널 스레드란커널 프로세스는 커널 공간에서만 실행하는 프로세스를 의미하며 대부분 커널 스레드 형태로 구동합니다. 커널 스레드는 리눅스 시스템 프로그래밍에서 데몬과 비슷한 일을 합니다. 데몬과 커널 스레드는 백그라운드 작업으로 실행하면서 시스템 메모리나 전원을 제어하는 역할을 수행합니다. 커널 스레드는 커널 내부에서 백그라운드로 구동하면서 커널 시스템에 도움을 주는 역할을 수행합니다. 데몬과 비교해서 커널 스레드는 커널 모드에서만 실행하고 시스템 콜과 인터페이싱 하지 않고 동작한다는 점입니다. 커널 스레드는 리눅스 커널 개발자나 드라이버 개발자가 구현하는 경우가 많습니다. 커널 스레드는 다음과 같이 3가지 특징이 있습니다.1. 커널 스레드는 커널 공간에서만 실행하며 유저 공간과 상호작용을 하지 않습니다.
[프로세스] 실행 중인 cpu 정보 업데이트(커널 4.9.65 )
By Guillermo Austin Kim | 2018년 2월 23일 |
ARM64 비트 리눅스 커널 4.9.65 버전에서 아래 구조체가 변경됐습니다.특히 해당 프로세스가 돌고 있던 CPU 정보를 담고 있는 int cpu 멤버가 사라졌는데요.crash64> struct thread_infostruct thread_info { unsigned long flags; mm_segment_t addr_limit; int preempt_count;} 기존 Linux version 4.6.0 버전crash64> p linux_bannerlinux_banner = $1 = "Linux version 4.6.0 (sudhakar.koppiset@ubuntu) (gcc version 5.2.1 20151005 (Linaro GCC 5.2-2015.11-2) ) #1