全部博文(14)
分类: 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步骤:
# mkdir /debug # mount -t debugfs nodev /debug
# echo ftrace > /debug/tracing/current_tracer
# echo 1 >/debug/tracing/tracing_enable
# echo 0 >/debug/tracing/tracing_enable
Non-Tracer Tracer 的使用
从 2.6.30 开始,ftrace 还支持几种 Non-tracer tracer,所谓 Non-tracer tracer 主要包括以下几种: