34.3. Ftrace 追踪器

根据如何配置内核,不是所有 tracer 都可用于给定的内核。对于 RHEL for Real Time 内核,trace 和 debug 内核的 tracer 与 production 内核不同。这是因为,当 tracer 被配置为内核中时,一些 tracer 有明显的开销,但未激活。这些 tracer 仅针对 tracedebug 内核启用。

tracer

function
个最广泛应用的 tracer。跟踪内核中的功能调用。根据跟踪的功能数量,这可能导致明显的开销。如果不激活,这会产生较小的开销。
function_graph

function_graph tracer 被设计为以更明确的方式显示。此 tracer 也会跟踪功能的退出,显示内核中的功能调用流。

注意

当启用时,这个 tracer 的开销比 功能 tracer 更多的开销,但禁用时相同的低开销。

wakeup
报告所有 CPU 间发生的活动的完整 CPU 追踪器。它记录了系统中收集最高优先级任务所需的时间,无论是任务是实时任务还是实时任务。记录组成一个非实时任务所需的 max 时间,则会隐藏包含实时任务所需时间。
wakeup_rt
报告所有 CPU 间发生的活动的完整 CPU 追踪器。它记录从当前最高优先级任务到调度时间之前完成这一时间。此 tracer 仅记录实时任务的时间。
preemptirqsoff
跟踪禁用抢占或中断的区域,并记录禁用了抢占或中断的最长时间。
preemptoff
与 preemptirqsoff tracer 类似,但仅跟踪抢占功能的最大间隔。
irqsoff
与 preemptirqsoff tracer 类似,但只跟踪禁用中断的最大间隔。
sisu
默认 tracer。它不会提供任何追踪功能本身,但事件可能会向任何 tracer 交集,所以 nop tracer 用于对追踪事件进行特定关注。