gpt4 book ai didi

c++ - "read_format"结构的 "perf_event_attr"属性的选项到底是什么?

转载 作者:行者123 更新时间:2023-12-02 11:01:47 27 4
gpt4 key购买 nike

我目前正在使用 perf_event_open 系统调用(在 Linux 系统上),并且我尝试理解该系统调用的配置参数,该参数由 struct perf_event_attr 结构给出.

这是关于read_format选项的。有谁可以在这个系统调用的手册页上看到,这个参数与这个调用的输出有关。

但我不明白每个可能的参数可以做什么。

<小时/>

特别是这两种可能性:

  • PERF_FORMAT_TOTAL_TIME_ENABLED
  • PERF_FORMAT_TOTAL_TIME_RUNNING

知道这些信息的人能给我一个直接的答案吗?

最佳答案

好的。

我进一步研究,我想我已经找到了答案。

<小时/>
  • PERF_FORMAT_TOTAL_TIME_ENABLED:似乎“启用时间”是指不再观察事件的时间与事件注册为“待观察”的时间之间的差异.

  • PERF_FORMAT_TOTAL_TIME_RUNNING:似乎“运行时间”是指内核真正观察到事件的时间总和。它小于或等于 PERF_FORMAT_TOTAL_TIME_ENABLED

<小时/>

例如:

您告诉内核您想要观察下午 1:13:05 的 X 事件。您的内核在 X 上创建一个“探针”,并开始记录事件。然后,由于未知的原因,您要求在下午 1:14:05 暂时停止记录。然后,您在下午 1:15:05 恢复记录。最后,您在下午 1:15:35 停止记录。

您的启用时间为 00:02:30(下午 1:15:35 - 下午 1:13:05 = 00:02:30)

和 00:01:30 运行时间(1:14:05 PM - 1:13:05 PM + 1:15:35 PM - 1:15:05 PM = 00:01:30)

<小时/>

read_format 属性可以使用掩码同时具有这两个值。在 C++ 中,它看起来像这样:

event_configuration.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_TOTAL_TIME_RUNNING;

其中 event_configurationstruct perf_event_attr 的实例。

关于c++ - "read_format"结构的 "perf_event_attr"属性的选项到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60210547/

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