Linux ftrace·perf로 커널 함수 호출 추이와 인터럽트 레이턴시 분석하는 커널 수준 디버깅 경험
Linux 시스템에서 커널 수준 디버깅을 경험한 건 학부 임베디드 시스템 수업에서 커널 지연 문제를 분석했을 때입니다. 사용자 공간에서 보이는 지연이 커널 스케줄링 때문인지 드라이버 때문인지 먼저 분리해야 한다는 것을 배웠습니다. ftrace로 커널 함수 호출 추이를 기록하면서 어느 커널 경로에서 시간이 집중되는지 파악했고, perf 도구로 CPU 이벤트 카운터를 분석해 컨텍스트 스위치 빈도와 캐시 미스 분포를 확인했습니다.
인터럽트 레이턴시가 문제일 때는 IRQ 핸들러 실행 시간과 대기 시간을 타임스탬프로 추적하는 방식을 적용했습니다. 커널 레벨 디버깅이 하드웨어 동작과 소프트웨어 스택의 연결 지점임을 이 경험에서 처음 이해했습니다.