我正在尝试使用 perf record 来记录 15 个硬件和跟踪点事件。
我想了解以下内容:
基于事件的采样:从文档中我了解到 perf record 将在对应于该事件的 64 位计数器溢出时进行采样。是对的吗? ~ 2^64 次此类事件后计数器会溢出吗?
当我要测量的事件多于 PMU/计数器的数量时,我是否必须通过任何特定开关才能使用多路复用。溢出事件在存在多路复用的情况下如何表现。
开关“-c”的目的/用途是什么?我可以使用此开关使计数器在每个 n 事件时溢出吗?
请帮忙。
最佳答案
计数器会在 ~ 2^64 次此类事件后溢出?
即correct .
我是否必须传递任何特定开关才能使用多路复用。
没有。 (尽管使用 -C
选项将有效地禁止它)。
If there are more events than counters, the kernel uses time multiplexing (switch frequency = HZ, generally 100 or 1000) to give each event a chance to access the monitoring hardware.
开关“-c”的用途是什么?
是的,你是对的。开关 -c
允许您指定采样周期。这意味着如果您将采样周期指定为 2,则在每第 2 个事件发生时,计数器将溢出。然后将事件发生时的所有信息(如体系结构状态等)记录到缓冲区中。
关于linux - perf record -c 选项和溢出事件之间的关系是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13004300/