前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【转】使用ftrace查找Kernel启动阶段的延时原因

【转】使用ftrace查找Kernel启动阶段的延时原因

作者头像
hankfu
发布2021-03-04 11:50:59
1.3K0
发布2021-03-04 11:50:59
举报
文章被收录于专栏:hankhank

转自 程序猿Ricky ftrace(三)(实例) : https://blog.csdn.net/rikeyone/article/details/80110843

查找Kernel启动阶段的延时原因

1.确保内核配置了如下选项

代码语言:javascript
复制
CONFIG_FTRACE: "Tracers"
CONFIG_FUNCTION_TRACER: "Kernel Function Tracer"
CONFIG_FUNCTION_GRAPH_TRACER: "Kernel Function Graph Tracer"

2.配置function graph trace到commandline

代码语言:javascript
复制
tracing_thresh=200 ftrace=function_graph

这将在kernel启动阶段自动使能function graph tracer,并且会跟踪所有延迟超过200us的function

3.用户关闭trace

当启动完成后需要用户自行执行关闭操作,trace才会关闭:

代码语言:javascript
复制
echo 0 > /sys/kernel/debug/tracing/tracing_on    

4.获取trace log

cat /sys/kernel/debug/tracing/trace > /sdcard/trace.txt

查找最大的kernel stack

1.确保内核配置了如下选项

代码语言:javascript
复制
CONFIG_FTRACE: "Tracers"

CONFIG_FUNCTION_TRACER: "Kernel Function Tracer"

CONFIG_STACK_TRACER: "Trace max stack"

2.配置stack trace到commandline

代码语言:javascript
复制
stacktrace

这将在kernel启动阶段自动使能stack trace,并且除非用户执行:

代码语言:javascript
复制
echo 0 > /proc/sys/kernel/stack_tracer_enabled

否则,stack trace会一直运行下去。

3.获取trace log

代码语言:javascript
复制
cat /debug/tracing/stack_trace > /sdcard/trace.txt

启动阶段使能event trace

同上,配置commandline:

代码语言:javascript
复制
trace_event=sched:*,timer:*,irq:* trace_buf_size=40M

有上面的实例可以知道,ftrace除了能够在运行阶段动态配置使能和关闭,也可以利用命令行来进行配置操作,这主要是针对boot阶段的trace操作。

trace某个进程

代码语言:javascript
复制
echo nop > /sys/kernel/debug/tracing/current_tracer

echo function > /sys/kernel/debug/tracing/current_tracer

echo 520 > /sys/kernel/debug/tracing/set_ftrace_pid 

echo 1 > /sys/kernel/debug/tracing/tracing_on

echo 0 > /sys/kernel/debug/tracing/tracing_on 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查找Kernel启动阶段的延时原因
  • 查找最大的kernel stack
  • 启动阶段使能event trace
  • trace某个进程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档