perf_event_open:包括在采样

时间:2018-05-14 02:41:51

标签: linux-kernel performancecounter perf

根据man pages考虑​​在计算事件时执行子进程,可以设置inherit位。使用PERF_FORMAT_GROUP时无法使用inherit。那么,如何包含子进程的执行(例如,在C源代码中执行shell命令),以便在使用perf_event_open

进行采样(PERF_FORMAT_GROUP)时对其进行计数

如果未指定PERF_FORMAT_GROUP,这是否表明对于每个记录的样本,每个样本记录将包括等于事件数的struct read_format,或者仅为每个事件记录样本。

1 个答案:

答案 0 :(得分:1)

如果您需要使用PERF_FORMAT_GROUP,但这不适用于内置inherit,那么您必须自己跟踪孩子。您可以使用ptrace然后为所有子任务设置perf_event_open来执行此操作。然后,您还必须合并所有事件文件描述符中的样本。

编辑: 如果没有PERF_FORMAT_GROUP,则内部采样记录不会同时进行。您当然可以设置计数事件(而不是采样事件),并定期从用户空间同时读取它们。