ftrace 基本使用方法

path: /sys/kernel/debug/tracing/

tracing_on

echo 1 > path/tracing_on # 打开trace收集log

available_events

cat available_events # 查看当前系统中的trace event list

trace

cat trace # 输出trace log

set_event

cat set_event # 查看设置过的trace event

per_cpu

cat per_cpu/cpuX/trace , stats, buff_size_kb # 查看每个cpu的trace运行信息

events

cat events/clk, camera, ufs... # 查看各个模块中的event事件,和使能情况

如 echo 1 > events/clk/enable # 使能所有clk event的trace

echo 1 > events/clk/clk_disable/enable  # 使能clk_disable时的trace log收集

...TODO

03-15
### ftrace基本概念 ftrace 是 Linux 内核中的一个重要工具,用于跟踪内核函数调用和其他事件。它提供了一种高效的方法来分析内核行为并诊断性能瓶颈或错误[^1]。 ### 功能概述 ftrace 提供的功能非常广泛,主要包括以下几个方面: - **动态追踪功能**:允许开发者在不修改代码的情况下启用或禁用特定的函数探针。 - **多种触发器支持**:可以设置条件触发器,在满足某些条件下记录数据或执行操作。 - **多样的输出格式**:通过不同的插件和选项,能够灵活调整日志的内容和形式。 - **低开销设计**:即使启用了多个探测点,其运行时消耗也相对较低,适合生产环境下的调试工作。 这些特性使得 ftrace 成为了研究复杂系统交互的理想选择之一。 ### 使用方法使用 ftrace 进行内核追踪,通常需要访问 `/sys/kernel/debug/tracing` 路径下的一系列文件接口。以下是几个常见的配置项及其作用说明: #### 配置目标函数 可以通过向 `set_ftrace_filter` 文件写入指定名称或者模式匹配字符串的方式设定想要监控的具体函数列表: ```bash echo sched_switch > /sys/kernel/debug/tracing/set_ftrace_filter ``` 此命令会仅针对调度切换相关联的操作开启跟踪机制。 #### 启动全局跟踪 当准备就绪之后,则需激活实际的数据收集过程。这一步骤可通过简单地更改当前状态变量实现: ```bash echo function_graph > /sys/kernel/debug/tracing/current_tracer ``` 上述脚本片段展示了如何采用图形化视图展示被监测到的所有活动链条关系网状结构。 另外值得注意的是,默认情况下可能并不具备足够的权限去读取敏感区域内的资料;因此如果遇到任何拒绝访问类型的异常情况,请确认已获取超级管理员身份后再试一次相应动作。 ### 示例程序演示 下面给出一段简单的 Python 脚本来自动化部分流程控制逻辑作为例子参考: ```python import os def setup_trace(func_name="sched_switch"): """Set up the trace environment.""" filter_path = "/sys/kernel/debug/tracing/set_ftrace_filter" tracer_path = "/sys/kernel/debug/tracing/current_tracer" try: with open(filter_path, 'w') as filt_file: filt_file.write(func_name) with open(tracer_path, 'w') as trac_file: trac_file.write("function_graph") except PermissionError: print("Operation not permitted; run this script as root.") setup_trace() print("Tracing has been set up.") ``` 该段代码定义了一个辅助函数用来简化手动编辑文本节点的过程,并且处理了潜在的安全限制提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值