简介
ftrace通常被理解为是一个linux内置的函数追踪器,可以很方便的帮助开发者内核函数的运行情况,通常被用来在分析函数延迟和系统性能。实际上ftrace不仅仅是一个函数追踪器,更准确的说ftrace是一个综合了多种手段的trace框架。比如分析延迟跟踪检查、中断的禁用与执行、任务的调度与抢占等等。
ftrace一个最常用的用法是事件追踪,通过内核中几百个event point 可以通过tracefs查看内核的运行情况。
使用
- 在内核编译配置中开启ftracer
Kernel hacking --->
[*] Tracers --->
[*] Kernel Function Tracer
- 判断系统是否开启
>>> cat /proc/filesystems | grep tracefs
nodev tracefs //出现tracefs说明内核已开启tracers
>>> mkdir /tracefs
>>> mount -t tracefs nodev /trace/
>>> cat /trace/available_tracers
function_graph function nop //出现function 说明内核配置已开启ftrace
- 设置ftrace为当前tracer
>>> cat /tracefs/current_tracer
nop
>>> echo echo function > /tracefs/current_tracer
function
- 打印当前内核调用栈
>>> cat trace_pipe
|