function graph tracer原理 概述 Function graph相对function trace的不同点是,在函数入口会trace,在函数出口也会trace。 ksys_read ->vfs_read ->ftrace_caller ->prepare_ftrace_return ->function_graph_enter ->ftrace_push_return_trace(&trac 性能工具 laumy 2024-08-31 257 热度 0评论
静态ftrace 上面章节主要描述的是动态ftrace,在早期还有静态ftrace。区别主要如下: - 动态ftrace与静态ftrace在编译参数方面静态编译使用的是参数“-pg”,而动态使用的是fpatchable-function-entry。 - 工具链使能“-pg”参数时,会在每个函数体前面插入_mcount函数。而动态ftrace会在函数入口(函数准备阶段前)插入nop指令。 - 静态ftrace插入的 性能工具 laumy 2024-08-29 167 热度 0评论
动态function tracer原理 fpatchable-function-entry选项 编译时指定-fpatchable-function-entry=N,①会在函数入口第一个指令之前插入N个nop,但是会保留M个放到函数入口之前,如果省略M则默认为0;②同时需要一个特殊的-fpatchable-function-entry段来记录所有函数的入口,如下蓝色部分。nop指令保留了额外的空间,可用于在运行时修改nop指令,添 性能工具 laumy 2024-08-28 236 热度 0评论
tracer的使用 irqsoff 当关闭中断时,CPU就无法响应中断了(NMI和SMI除外),无法响应外部事件做出反应。这会阻止定时器触发或鼠标中断触发,导致系统延迟。 irqsoff跟踪器跟踪中断被禁用的时间,当达到新的最大延迟时,跟踪器会保存导致该延迟点的跟踪,一边每次达到新的最大值,旧的保存的跟踪会被丢弃,新的跟踪会被保存。如果要重置最大值,用echo 0写到tracing_max_latency中。 # e 性能工具 laumy 2024-08-27 208 热度 0评论
ftrace-概述 ftrace是一个内部跟踪器,用于帮助开发人员查找内核正在发生的事情,它可用于调试或分析用户空间之外发生的延迟和性能问题。ftrace从名称上看是function trace,函数跟踪器,但它实际并不限制函数跟踪,而是多个不同跟踪实用程序的框架。延迟跟踪可以检查在禁用和启用中断之间发生的情况,以及抢占和从唤醒任务到实际运行任务的时间。 ftrace最常见的用途之一是用于事件跟踪(event tra 性能工具 laumy 2024-08-27 181 热度 0评论