Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17682
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 123
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-16 09:14
文章分类

全部博文(14)

文章存档

2014年(2)

2013年(12)

我的朋友

分类: LINUX

2013-08-16 10:04:54

1. refs:
  http://www.ibm.com/developerworks/cn/linux/l-cn-ftrace/
  http://www.ibm.com/developerworks/cn/linux/l-cn-ftrace1/
  http://www.ibm.com/developerworks/cn/linux/l-cn-ftrace2/
  http://lxr.linux.no/#linux+v3.10.7/Documentation/trace/ftrace.txt
  http://lxr.linux.no/#linux+v3.10.7/Documentation/trace/ftrace-design.txt

2. Summarize
ftrace 的作用是帮助开发人员了解 Linux 内核的运行时行为,以便进行故障调试或性能分析。
Ftrace 的实现依赖于其他很多内核特性,比如 tracepoint[3],debugfs[2],kprobe[4],IRQ-Flags[5] 等

 1) ftrace 的配置:
# make menuconfig
 Kernel hacking >  Tracers > 根据自己的需要选中特定的跟踪器

ftrace 通过 debugfs 向用户态提供了访问接口,所以还需要将 debugfs 编译进内核
Kernel hacking > Debug Filesystem


 2) ftrace 的使用
:
ftrace 在内核态工作,用户通过 debugfs 接口来控制和使用 ftrace 。从 2.6.30 开始,ftrace 支持两大类 tracer:传统 tracer 和 Non-Tracer Tracer 。下面将分别介绍他们的配置和使用。
 使用传统的 ftrace步骤:

  • mount debugfs    
     # mkdir /debug 
     # mount -t debugfs nodev /debug
  • 选择一种 tracer, e.g. function tracer
     # echo ftrace > /debug/tracing/current_tracer
  • 使能 ftrace
     # echo 1 >/debug/tracing/tracing_enable
  • 执行需要 trace 的应用程序,比如需要跟踪 ls,就执行 ls
  • 关闭 ftrace
     # echo 0 >/debug/tracing/tracing_enable
  • 查看 trace 文件

Non-Tracer Tracer 的使用

从 2.6.30 开始,ftrace 还支持几种 Non-tracer tracer,所谓 Non-tracer tracer 主要包括以下几种:

  • Max Stack Tracer
  • Profiling (branches / unlikely / likely / Functions)
  • Event tracing
和传统的 tracer 不同,Non-Tracer Tracer 并不对每个内核函数进行跟踪,而是一种类似逻辑分析仪的模式,即对系统进行采样,但似乎也不完全如此。
omit


阅读(258) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:[LDD] linux Communicating with Hardware

给主人留下些什么吧!~~