Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
리눅스/OS

Kprobes와 Ftrace: 리눅스 커널 동적 추적의 핵심 메커니즘

Kprobes는 런타임에 커널 명령어에 동적으로 중단점을 삽입하여 핸들러를 실행하는 경량 프로브 메커니즘이며, Ftrace는 함수 호출 추적과 이벤트 기반 진단을 제공하는 통합 추적 프레임워크입니다. 두 기술 모두 시스템 성능 분석, 커널 디버깅, 실시간 모니터링에 필수적인 도구입니다.

2026.10.05  ·  12회  · 

Kprobes와 Ftrace: 작동 원리 및 아키텍처

Kprobes는 인터럽트 예외 처리 메커니즘을 이용해 동작합니다. 등록 시 프로브 대상 명령어의 첫 바이트를 중단점 명령어(int3 등)로 치환하고, CPU가 이를 실행하면 트랩이 발생하여 핸들러가 호출됩니다. 이후 원본 명령어의 복사본이 싱글-스텝으로 실행되고 post_handler가 동작합니다. kretprobe(반환 프로브)는 함수 진입 시 반환 주소를 트램폴린 주소로 교체하여 함수 종료 시 핸들러를 실행합니다.

Ftrace는 컴파일 타임에 모든 함수에 mcount 호출을 삽입하고, 부트 시 nop 명령어로 변환합니다. 추적 활성화 시 nop을 ftrace 호출로 동적 변경하여 최소 오버헤드를 유지합니다. 함수 진입/종료 시점 모두에서 추적하는 function_graph 모드는 함수 실행 시간 측정과 호출 그래프 생성을 가능하게 합니다.

최적화 기법과 실무 주의사항

Kprobes의 점프 최적화(CONFIG_OPTPROBES)는 중단점 대신 점프 명령어를 사용하여 오버헤드를 0.05~0.1 마이크로초로 단축합니다. 하지만 post_handler 존재 여부, 다중 프로브 상황, 비활성화 상태에서는 최적화가 억제됩니다. 실무에서는 피해야 할 함수 블랙리스트(nokprobe_inline 주석, NOKPROBE_SYMBOL 매크로)를 반드시 확인하고, 재귀 트랩이나 커널 자체 instrumentation 코드는 프로브할 수 없습니다. Ftrace 기반 kprobe 이벤트를 사용하면 perf-probe를 통해 지역 변수나 함수 인자도 추적 가능합니다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원