EzDoum

찾기
처음으로 | 찾기 | 아카이브 | 글 올리기 | 링크 | 자료실 | 통계 | 연락처 | 자유게시판
이지도움 특집
전체보기
네트워크
TI OMAP35x
TI DaVinci
Analog Blackfin
RobotWar2005
임베디드!
캐쉬의 모든것
메모리 할당 알고리즘
CPU 파이프라이닝
자료구조(Tree)
금융

Login
이름

암호

기억하기


사용자 등록

현재 접속중인 등록 사용자는 0명, 익명 사용자는 4명 입니다.
전체 등록 사용자: 751명

마지막 답장
·libcurl + fuse 조합으로 되는게 많네. (1)
·Linux Ftrace에 관해 (3)
·Android MTP ( Media Transfer Protocol ) (1)
·Lighttpd에 인증을 digest 사용시 IE 오동작 문제? (1)
·Dtrace에 관해 (1)

최근글
·OpenSSL and multi-threads (0)
·ARM 환경에서 OpenCL 사용 (0)
·IoT용 WIFI 모듈 비교 ( MCU ) 클래스 (0)
·Glances - 리눅스 여러 가지 항목을 한 화면에서 모니터링 (0)
·plugin 방식의 로그 분석기 (0)

뜨거운 감자
·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)
·ASP.NET의 데이터 그리드와 사용자 컨트롤 (7)
·DHTML Editing Control (7)

가장 많이 읽은 글
·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
·멀티쓰레드(Pthread) 프로그래밍
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·Sorting Algorithm Animation (2)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

Linux Ftrace에 관해
글쓴이: EzDoum 글쓴날: 2012년 11월 03일 오후 04:43




실제로 보드에서 구동을 해봤다.

기능 활성화를 위해 커널 옵션 변경하고 세트 동작중에 profile을 해볼려고 했으나,
세트에서 사용하는 Kernel module 로딩에서 실패한다. (모듈 Layout이 다르다고)

그래서 심플 부팅 상태에서 몇가지만 시험을 해봤는데, 단위 모듈 검증시에도
커널 대부분의 함수와 주요 이벤트를 trace할 수 있어서 유용한 툴이다.

KernelShark(WireShark ㅎㅎ)를 사용하면 Trace 결과물을 GUI로도 볼수 있음.

이것과 더불어 Kprobes를 사용해 런타음에 특정 함수에 Pre/Post Handler를 적용하면
동적으로 뭔가를 해보기에 유용할 것 같다.
Kprobes란? (http://www.ibm.com/developerworks/kr/library/l-kprobes.html)

관련된 사용 예 or 예제를 준비하면 공유 하겠음.


# 안드로이드에서 Ftrace 활용 디버깅 & 튜닝
http://www.kandroid.org/board/board.php?board=conference&command=body&no=81

# A look at ftrace
http://lwn.net/Articles/322666/
# Debugging the kernel using Ftrace - part 1
http://lwn.net/Articles/365835/
# Debugging the kernel using Ftrace - part 2
http://lwn.net/Articles/366796/
# Secrets of the Ftrace function tracer
http://lwn.net/Articles/370423/


# Installing and Using Ftrace ( omappedia )
http://omappedia.org/wiki/Installing_and_Using_Ftrace

# Measuring Function Duration with Ftrace
http://www.landley.net/kdocs/ols/2009/ols2009-pages-47-54.pdf



# KernelShark (quick tutorial)
http://elinux.org/images/6/64/Elc2011_rostedt.pdf

# KernelShark Manual
http://rostedt.homelinux.com/kernelshark/

# trace-cmd - command line reader for ftrace
http://lwn.net/Articles/341902/

# trace-cmd: A front-end for Ftrace
http://lwn.net/Articles/410200/



# Ftrace RedHat manual
http://www.linuxtopia.org/online_books/rhel6/rhel_6_developer_guide/rhel_6_developer_ftrace.html

6.7. ftrace
The ftrace framework provides users with several tracing capabilities, accessible through an interface much simpler than SystemTap's. This framework uses a set of virtual files in the debugfs file system; these files enable specific tracers. The ftrace function tracer simply outputs each function called in the kernel in real time; other tracers within the ftrace framework can also be used to analyze wakeup latency, task switches, kernel events, and the like.
You can also add new tracers for ftrace, making it a flexible solution for analyzing kernel events. The ftrace framework is useful for debugging or analyzing latencies and performance issues that take place outside of user-space. Unlike other profilers documented in this guide, ftrace is a built-in feature of the kernel.

6.7.1. Using ftrace
The Red Hat Enterprise Linux 6 kernels have been configured with the CONFIG_FTRACE=y option. This option provides the interfaces needed by ftrace. To use ftrace, mount the debugfs file system as follows:

mount -t debugfs nodev /sys/kernel/debug
All the ftrace utilities are located in /sys/kernel/debug/tracing/. View the /sys/kernel/debug/tracing/available_tracers file to find out what tracers are available for your kernel:

cat /sys/kernel/debug/tracing/available_tracers
power wakeup irqsoff function sysprof sched_switch initcall nop

To use a specific tracer, write it to /sys/kernel/debug/tracing/current_tracer. For example, wakeup traces and records the maximum time it takes for the highest-priority task to be scheduled after the task wakes up. To use it:
echo wakeup > /sys/kernel/debug/tracing/current_tracer

To start or stop tracing, write to /sys/kernel/debug/tracing/tracing_on, as in:
echo 1 > /sys/kernel/debug/tracing/tracing_on (enables tracing)
echo 0 > /sys/kernel/debug/tracing/tracing_on (disables tracing)

The results of the trace can be viewed from the following files:
/sys/kernel/debug/tracing/trace

This file contains human-readable trace output.
/sys/kernel/debug/tracing/trace_pipe

This file contains the same output as /sys/kernel/debug/tracing/trace, but is meant to be piped into a command. Unlike /sys/kernel/debug/tracing/trace, reading from this file consumes its output.

---------------------------------------------

# The ftrace framework is fully documented in the following files:
ftrace - Function Tracer: file:///usr/share/doc/kernel-doc-version/Documentation/trace/ftrace.txt
function tracer guts: file:///usr/share/doc/kernel-doc-version/Documentation/trace/ftrace-design.txt

---------------------------------------------


  • 관련 링크
  • [분류: 리눅스 커널 인쇄용 페이지 본문 email로 보내기 ]


    답장 쓰기
    글을 올리시려면 로그인 (사용자 등록) 하셔야 합니다.


     Home ^ BACK TO TOP ^ EzDoum - 도움이 필요하세요~??
     Powered by KorWeblog 1.5.8 Copyleft © 2001 EzDoum, 관리자: EzDoum