1st ~ 15th Kandroid 기술 세미나
이 게시판은 2008년 3월부터 진행되어 왔던 Kandroid 세미나 발표자료, Q&A, 참가후기를 기록한 공간입니다.
8th Kandroid Conf. - 커널 디버깅:Function Tracer Technology
작성자 인베인
작성일 2011-10-18 (화) 23:47
ㆍ추천: 0  ㆍ조회: 15622      
IP: 115.xxx.44
첨부#1 30.kandroid-8th-debugging-ftrace-20111016-1550.pdf (21,909KB) (Down:2772)
 

세션제목: 안드로이드 커널의 디버깅 테크닉 - 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)

바이너리 파일 다운로드 (ARM 타겟용 trace-cmd/strace/ltrace , X86 리눅스 배포판용 kernelshark)
    : http://code.google.com/p/android-group-korea/downloads/list
      ( * 리눅스 배포판 지원 범위:  Ubuntu 10.04 LTS 및  RHEL6/CENTOS6 배포판 지원 )

*  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


  
이상.
이름아이콘 들풀
2011-10-20 13:29
세미나 끝나고 바쁜것 마무리하느라 이제야 컴백했네요
내년에는 멋진 하루짜리(?) 발표 기대할께요ㅋ 고생 많았어요
그리고 TLS 글 제일 하단의 방향 아주 좋네요
우리가 가야할 방향일 수도 있겠다는 생각이 듭니다
인베인 세미나후 친절하게도 1:1으로 개인 메일주신 분들의 질의들을 수렴하여 ppt 자료내용을 수정하여놓았습니다. 글고, 독자의 수고를 덜기위해 컴파일된 바이너리를 모두 본문내용에 올려 놓았으니 이글 보시는분들 참고되세요... 10/20 14:27
   
 
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.