 |
세션제목: 안드로이드 커널의 디버깅 테크닉 - Function Tracer(Ftrace) Technology Session
세션목표 : 안드로이드 플랫폼을 상용 모바일 디바이스에 탑재후에 많은 개발자들이 디버깅 문제, 프로파일링 문제, 튜닝 문제, 트레이싱 문제 등의 최적화 이슈에 직면하게 됩니다. 본 세션에서는 플랫폼 및 APP 개발자들이 커널의 Ftrace기술을 이용하여 Linux OS를 쉽고 효과적으로 Tracing을 할수 있기 위한 방법론들을 공개합니다. (이번 세션에서는 목차에 보이듯이 청중의 포지션을 감안하여 Kernel의 Ftrace개발 참여를 위해 필요한 수준의 기술지식들은 소개 정도만 할것이므로, 베테랑 커널 개발자분들은 오해의 소지가 없으면 합니다.) 특히, 안드로이드 플랫폼을 기반으로 상용 제품을 준비하는 개발자 분들에게 소프트웨어 품질 경쟁력을 확보하기 위해 안드로이드 플랫폼 OS 내부를 기반 지식 없이도 쉽게 Tracing할 수 있는 Know-How를 제시합니다.
세션1: 이론편 (Ftrace for Platform Developers)
* Introduction & Overview - 멀티코어 지원을 위한 안드로이드 커널 기능들 - 디버깅을 위해 안드로이드폰 루팅하기 - User-space Zygote에 Strace 연동시키기 - User-space APP VMs에 GDB 디버깅 환경 구축 - Ftrace란 무엇인가? - Ftrace로 할 수 있는 일들은 무엇인가? - Ftrace의 환경설정 및 맛보기 데모 * Understanding Ftrace - Ftrace의 동작원리(Dynamic function with –pg option) - Ftrace에서 지원되는 Trace 기능들 - 분석이 필요한 커널함수만 필터링 방법 - 문맥교환 스케쥴링 분석하기 - 커널함수 실행을 그래프 형태로 출력하기 - 이벤트 트레이서(Event Tracer) 활용하기 - Plugins VS. Events 의 장단점은 무엇인가?
세션2: 활용편 (Ftrace for App Developers)
* Trace-cmd (CLI Utility ) - 리눅스 커널 비전문가를 위한 툴들 (trace-cmd/kernelshark) - 애플리케이션 개발자를 위한 Trace-cmd - ARM용 Trace-cmd & Kernelshark 소스 컴파일 하기 - Trace-cmd 실행파일이 필요로 하는 라이브러리 구조 - Trace-cmd 명령 실행 방법 - Trace-cmd으로 특정 CPU의 함수 프로파일링 하기 - 인트럽트 Off 영역의 디버깅 방법 - 스케쥴링 Latency의 디버깅 방법
* Kernelshark (GUI Utility) - GUI기반 로그파일 분석 유틸리티 - Kernelshark - Kernelshark의 그래프 정보 영역 마크 - Kernelshark으로 로그파일 분석하기 - Study: Ftrace을 이용하여 Contacts의 성능 저하 분석
* Technical Key –pg (CFLAGS), _mcount, Kstop_machine[Freeze], ftrace (event tracing as hooking mechanism, plugins as gcc's -pg mechanism, profiling, ring-buffer), debugfs, sysfs
이상.
|
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
15
|