linux - perf record -c 选项和溢出事件之间的关系是什么?

标签 linux performance cpu performancecounter perf

我正在尝试使用 perf record 来记录 15 个硬件和跟踪点事件。

我想了解以下内容:

  1. 基于事件的采样:从文档中我了解到 perf record 将在对应于该事件的 64 位计数器溢出时进行采样。是对的吗? ~ 2^64 次此类事件后计数器会溢出吗?

  2. 当我要测量的事件多于 PMU/计数器的数量时,我是否必须通过任何特定开关才能使用多路复用。溢出事件在存在多路复用的情况下如何表现。

  3. 开关“-c”的目的/用途是什么?我可以使用此开关使计数器在每个 n 事件时溢出吗?

请帮忙。

最佳答案

计数器会在 ~ 2^64 次此类事件后溢出?

correct .

我是否必须传递任何特定开关才能使用多路复用。

没有。 (尽管使用 -C 选项将有效地禁止它)。

On multiplexing :

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/

相关文章:

cpu - 在哪里可以找到CPU的 throttle 温度和关机温度?

linux - Eclipse 的一个窗口中的 Bash shell

linux - 源码包目录

algorithm - 模块化逆的奇怪 Python 加速

performance - Grails:部署时间非常慢。 'Resolving Dependencies...' 需要 10 多秒

android - 在Android应用中关闭适配器后停止音频播放器

java - Windows 的 getSystemLoadAverage() 替代方法?

cpu - 为什么 “while true”将使用100%的CPU资源?

python - banshee:我如何通过 DBus 为 Banshee 上的特定轨道设置评级?

python - 在 Raspberry Pi 1B 上安装 Pillow 失败 "gcc: fatal error: Killed signal terminated program cc1"