Ftrace是系统的内部追踪器,这个设计是为了帮助开发人员和设计人员去查找Kernel内部发生的情况,他还可以用来分析和调试用户空间之外的延迟和性能问题。
尽管通常将ftrace视为函数跟踪器,但实际上它是多个分类跟踪实用程序的框架,可以进行延迟跟踪,以检查禁用和启用的中断之间发生了什么,以及抢占以及从唤醒任务到计划任务的时间。
ftrace最常见的用途之一是事件跟踪。 整个内核中有数百个静态事件点,可以通过tracefs文件系统启用这些事件点,以查看内核某些部分的情况。有关更多信息,请参见events.txt。
使用例子:分析Androbench的读写调用情况
(1)使用function_graph:
echo 0 > sys/kernel/debug/tracing/tracing_on (关闭trace)
echo > /sys/kernel/debug/tracing/trace (清除trace文件的缓存内容)
echo function_graph > /sys/kernel/debug/tracing/tracing_on (设置追踪器为function_graph)
echo vfs_read(或者vfs_write) > /sys/kernel/debug/tracing/set_graph_function
echo funcgraph-proc > /sys/kernel/debug/tracing/trace_options (显示当前的进程)
echo 1 > /sys/kernel/debug/tracing/tracing_on (打开trace)
adb pull /sys/kernel/debug/tracing/trace 本地路径 (将抓取的trace文件导出到本地&#x