【问题标题】:Listing and using custom Linux kernel tracepoints列出和使用自定义 Linux 内核跟踪点
【发布时间】:2020-12-31 13:22:00
【问题描述】:

我按照https://www.kernel.org/doc/Documentation/trace/tracepoints.txt 的教程在内核核心中创建了一个自定义跟踪点(即不在可加载模块中)。

但是,我没有看到perf listtplist(来自密件抄送工具)的输出中列出的跟踪点。

所以,我不知道如何使用跟踪点。

问题:如何使跟踪点出现在perf list/tplist 输出中?

谢谢。

【问题讨论】:

  • 对于它的价值,来自 bcc 的tplist 通过列出/sys/kernel/debug/tracing/events/ 下可用的跟踪点来列出跟踪点,然后从它们的“格式”中读取一些信息(例如来自/sys/kernel/debug/tracing/events/tcp/tcp_probe/format,参见@987654322 @. 也许你没有提供tplist 可以用来转储跟踪点信息的格式信息?(不知道怎么做,看看我猜的其他跟踪点)。我没看perf做到了。
  • @Qeole 感谢您的洞察力!你是对的 - 我认为我没有为要列出的跟踪点提供足够的信息。因此,我按照问题链接中的说明在lwn.net/Articles/379903 使用TRACE_EVENT() 而不是DECLARE_TRACE()。这解决了我的问题:我可以在 perf listtplist 输出中看到跟踪点。
  • 酷,很高兴我能帮上忙!您应该将此作为答案并接受它。

标签: linux linux-kernel perf bcc-bpf tracepoint


【解决方案1】:

我通过使用TRACE_EVENT() 宏(请参阅this LWN article 中的详细信息)而不是DECLARE_TRACE() 解决了这个问题。我现在可以在 perf listtplist 输出中看到跟踪点。

感谢@Qeole 的洞察力促成了解决方案。

【讨论】:

    猜你喜欢
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2011-12-21
    • 2016-01-10
    • 2017-07-19
    相关资源
    最近更新 更多