gpt4 book ai didi

linux - 使 linux 内核函数在 ftrace 中显示 available_filter_function

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:03 31 4
gpt4 key购买 nike

我要追踪perf_event_open使用 ftrace 但它没有显示在 available_filter_function 中。事实上,似乎只显示了模块中加载的函数。

是否有非模块功能的默认黑名单?如何添加我需要的功能?

最佳答案

Steven Rostedt 于 2010 年 1 月 20 日在“Ftrace 函数跟踪器的 secret ”一文中提供了一些信息:https://lwn.net/Articles/370423/

A list of functions that can be added to the filter files is shown in the available_filter_functions file. This list of functions was derived from the list of stored mcount callers previously mentioned.

文件中列出的函数集取决于内核编译选项(请在/boot/config* 或/proc/config.gz 中检查它们并将结果添加到问题中):

CONFIG_FUNCTION_TRACER
CONFIG_DYNAMIC_FTRACE
CONFIG_FUNCTION_GRAPH_TRACER

在本系列的早期文章中有更多关于 mcount 的信息:https://lwn.net/Articles/365835/使用 Ftrace 调试内核 - 第 1 部分,2009 年 12 月,Steven Rostedt:

One of the most powerful tracers of Ftrace is the function tracer. It uses the -pg option of gcc to have every function in the kernel call a special function "mcount()" .. When CONFIG_DYNAMIC_FTRACE is configured the call is converted to a NOP at boot time to keep the system running at 100% performance. During compilation the mcount() call-sites are recorded.

您还可以检查/sys/kernel/debug/tracing/events/syscalls/sys_enter_perf_event_open/中的文件吗?

系统调用可用于 ftrace,不是作为函数,而是作为事件(示例来自 opensourceforu.com/2010/12/kernel-tracing-with-ftrace-part-2/):

trace-cmd record -e syscalls ls  ##Initiate tracing on the syscall 'ls'
##(A file called trace.dat gets created in the current directory.)
trace-cmd report ## displays the report from trace.dat

对我来说,trace-cmd record -e syscalls perf stat ls -d . 捕获对 perf_event_open 的调用。

关于linux - 使 linux 内核函数在 ftrace 中显示 available_filter_function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006485/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com