我想使用 Ftrace 测量一些内核函数的性能,但我想针对特定的参数值选择性地测量它。这是因为调用相同函数(但参数不同)的相同/其他程序污染了我的 Ftrace 输出日志。另外,我不想设置 PID 过滤器,因为它不能解决我的问题(我正在运行多个并行内核线程,并且同一个程序也可以使用不同的参数调用该函数)在不影响的情况下最好的方法是什么测量?我是否缺少任何 Ftrace 功能(或可能自定义跟踪点)?
问问题
64 次
1 回答
0
对于这种情况,我们可以使用条件跟踪点。这个补丁也可能有助于理解。可以检查此文件 -samples\trace_events\trace-events-sample.h
在 linux 内核中查看示例示例。
在samples\trace_events\trace-events-sample.h
,看到这个宏后,我变得一清二楚—— TRACE_EVENT_CONDITION()
。感谢作者在那里提供了详细的文档。
此外,可以使用预定义的事件跟踪点或定义一个新的自定义事件跟踪点,include/trace/events/*.h
并通过添加条件过滤跟踪日志TRACE_DIR/tracing/events/EVENT/filter
。这个内核文档链接对理解这一点非常有帮助。
于 2021-05-12T17:51:39.537 回答