2013년 11월 21일 목요일

[Android] Booting 시간 Debuging 하기

* BootChart 활용법

0. 사전 준비 - 리눅스 PC에 분석 툴 설치
    웹 혹은 첨부의 bootchart.jar 파일을 Linux BootChart Log 분석 폴더로 복사
    $ sudo apt-get install bootchart

1. Target Board에 Bootchart Log 저장을 위한 소스 수정.
    ./android/system/core/init/bootchart.h
    #define BOOTCHART 1//로 수정.

2. Build
   $ export INIT_BOOTCHART=true <== Build PC 환경 변수 설정 후 Full Build

3. Target Board Bootchart Log 저장을 위한 환경 설정.
   - Target Board 부팅 후
    $ adb shell
    # mkdir /data/bootchart
    # echo 120 > /data/bootchart-start <== Polling Time 설정.

4. Target Board 재부팅 후 Bootchart Log 확보
    $ adb shell
    # echo 1 > /data/bootchart-stop <= Bootchart stop
    $ adb pull /data/bootchart ./Linux_PC_LogPath

5. Linux_PC_LogPath bootchart.png 생성
    $ tar czf bootchart.tgz *
    $ java -jar bootchart.jar ./bootchart.tgz
   ==> bootchart.png 생성 됨

Process별로 CPU 사용정보 및 I/O 정보 확인

* Kernel initcall Debuging

./kernel/init/main.c
int initcall_debug = 1; // 0 -> 1변경 후 빌드
==> Booting 시 전체 initcall section별로 호출되는 함수 및 소요 시간 정보 아래와 같이 출력됩니다.

callingcpu_stop_init+0x0/0xcc @ 1 <== 호출되는 시점.
initcall cpu_stop_init+0x0/0xcc returned 0 after 19531 usecs <== 소요 시간

댓글 없음:

댓글 쓰기