做网站时 404网页如何指向,五金外贸订单网,十大搜索引擎地址,网站搭建怎么做文章目录 概述使用Event Tracing使用set_event接口使用enable接口 Event配置Event formatEvent Filtering过滤规则设置过滤器 Event TriggerTrigger语法 Trace marker相关参考 概述
Event Tracing#xff08;事件追踪#xff09;利用在内核代码中加入的各种Tracepoint#… 文章目录 概述使用Event Tracing使用set_event接口使用enable接口 Event配置Event formatEvent Filtering过滤规则设置过滤器 Event TriggerTrigger语法 Trace marker相关参考 概述
Event Tracing事件追踪利用在内核代码中加入的各种Tracepoint追踪点实现对系统的追踪。Tracepoint可以在不创建自定义内核模块的情况下使用以使用Event Tracing基础结构注册探测函数。
使用Event Tracing
Event Tracing基于tracefs文件系统进行配置与Event Tracing相关的控制文件如下
/sys/kernel/tracing/available_events查看系统可追踪的事件/sys/kernel/tracing/set_event配置对特定事件的追踪/sys/kernel/tracing/set_event_notrace_pid设置不追踪PID指定进程的事件/sys/kernel/tracing/set_event_pid设置仅追踪PID指定进程的事件/sys/kernel/tracing/events存放了系统所有可追踪的事件在对应的事件目录下存在enable文件可用于使能对这个事件的追踪。
使用set_event接口
启用对一个事件的追踪echo sched_wakeup /sys/kernel/tracing/set_event禁用对一个事件的追踪echo !sched_wakeup /sys/kernel/tracing/set_event禁用对所有事件的追踪echo /sys/kernel/tracing/set_event启用对所有事件的追踪echo *:* /sys/kernel/tracing/set_event
系统中的可追踪事件都会归属到某一个特定的subsystem例如irq、block、scsi、net等查看/sys/kernel/tracing/availabel_events文件可以看到每一个事件的完整名称格式应该是:其中subsystem部分是可选的。
set_event接口支持启用对某一个subsystem中所有事件的追踪
echo irq:* /sys/kernel/tracing/set_event使用enable接口
/sys/kernel/tracing/events目录按照subsystem分类存放了系统中所有可追踪的事件如下 对于每一个可追踪事件系统都提供了名为enable的控制文件用于配置特定事件的开关。操作方式如下
启用对事件的追踪echo 1 /sys/kernel/tracing/events/block/block_plug/enable禁用对事件的追踪echo 0 /sys/kernel/tracing/events/block/block_plug/enable
如果需要启用对某一个subsystem下所有事件的追踪操作对应subsystem目录下的enable文件就可以了。
Event配置
/sys/kernel/tracing/events目录存放了所有系统追踪事件的信息每个事件都会在tracefs文件系统提供一些配置接口。
enable启用/禁用对事件的追踪filter配置事件过滤format描述了事件的格式id事件IDtrigger配置Event Trigger。
Event format
每个跟踪事件都关联了一个format文件文件中包含了跟踪事件记录中每个字段的描述这些信息可用于解析二进制跟踪流也可以用于Event Filter中的查询字段。 完整的format信息通常包括以下几个部分
事件名称事件ID公共字段以common_开头记录了跟踪事件通用的信息特定于事件的字段打印事件的格式字符串。
Event Filtering
Event Filtering事件过滤可以使用过滤规则对关联的跟踪事件进行过滤。当跟踪事件记录到跟踪缓冲区时内核会根据与该事件关联的过滤器对字段进行检查字段值与过滤器匹配的事件会打印到跟踪输出中不匹配的事件则会被丢弃。默认情况下Event Filtering没有配置跟踪事件发生后都会打印出来。
过滤规则
过滤规则的格式如下
field-name relational-operator value其中
field-name支持过滤的字段可以通过查询format文件获取relational-operator对于数字类型字段支持的操作符包括, !, , , , , 而对于字符串类型字段支持, !, ~其中~支持通配符*?和字符类[。
设置过滤器
跟踪事件提供了filter文件节点用于配置过滤规则。简单的示例如下
Event Trigger
跟踪事件可以配置Event Trigger事件触发器功能使得在跟踪事件发生可以触发特定的操作。通过向给定事件trigger文件写入触发器规则可以添加触发器到特定事件中或从中删除触发器。
Trigger语法
Event Trigger使用trigger文件节点进行配置。添加trigger的格式如下
echo command[:count] [if filter] trigger删除trigger的格式如下
echo !command[:count] [if filter] triggerTrace marker
Trace marker是一种可以跟踪应用程序的手段它本质上是tracefs文件系统提供的一个文件节点/sys/kernel/tracing/trace_marker应用程序可以向trace_marker文件中写入字符串ftrace会同步记录写入执行该动作时的时间戳。通过与ftrace的其它手段配合trace_marker可以观察应用程序在不同跟踪标记之间运行的内核事件。
相关参考
Event Tracing