gpt4 book ai didi

perf - PERF_RECORD_SAMPLE 中的不同字段有何含义?

转载 作者:行者123 更新时间:2023-12-02 09:23:22 25 4
gpt4 key购买 nike

我试图了解 perf 如何在运行 Debian Wheezy 的基于 ARM 的 IoT 设备上收集事件样本。现在,我正在查看页面错误事件,并记录每个示例的数据。

我正在使用 -c 1 收集性能样本。典型的 PERF_RECORD_SAMPLE 数据如下所示。

2138094219370 0x15a8 [0x48]: PERF_RECORD_SAMPLE(IP, 2): 2408/2408: 0xb6f93820 period: 1 addr: 0xb6f93820

我找到了解释大多数字段含义的文档和来源,但我无法找出前两个字段的含义。我本质上是在寻找任何可以提供有关收集此样本时应用程序状态的更多信息的内容,例如收集样本时已经过去了多少时间(或时钟周期),我想知道这些字段是否提供了任何相关信息。

任何有关此问题的帮助都将不胜感激。

最佳答案

第一个字段是事件的时间戳,代表系统运行时间(以纳秒为单位)。您可以减去两个连续样本的时间戳来了解它们之间经过了多少时间。对于您显示的示例,时间戳为 2138094219370。

第二个字段是样本记录在存储样本的文件中的偏移量。

为了完整起见,以下是其余字段的含义:

  • 0x48 是样本记录的大小(以字节为单位)。
  • PERF_RECORD_SAMPLE 是样本的类型。
  • IP 表示样本包含采样时的指令指针。
  • 2 表示样本是在用户模式下采集的。
  • 2408/2408 分别是进程 ID 和线程 ID。
  • 0xb6f93820 是 IP。
  • “period: 1”是采样周期。我不确定期间的单位是什么。
  • “addr: 0xb6f93820”与此特定示例的 IP 相同(因为它仅包含上面提到的 IP)。 addr 可能包含其他信息,具体取决于示例。我认为这还取决于您用来打印样本的工具。
<小时/>

我通过查看代码已经弄清楚了所有这些:

  • 打印时间戳 here .
  • 接下来的几个字段将被打印 here .
  • 打印其余字段 here .

之后,可以在 dump_sample 函数中打印其他信息,具体取决于示例中还有哪些内容。

关于perf - PERF_RECORD_SAMPLE 中的不同字段有何含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57384174/

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