【发布时间】:2017-12-09 06:21:48
【问题描述】:
有谁知道如何获取 Perf 事件的最大事件周期值(或内核实际传递给 PMU 的值)?
我正在使用 perf 来衡量我的程序,如下所示:
perf record -d -e cpu/event=0xd0,umask=0x81/ppu,cpu/event=0xd0,umask=0x82/ppu -c 5
cpu/event=0xd0,umask=0x81/ppu 表示测量 cpu 中的所有负载,cpu/event=0xd0,umask=0x82/ppu 表示所有存储。
我试图了解strace 传递的参数是如何传递的,但一无所获。
PMU 是否收到超出其能力的值,仍会尝试达到它?如果有,在哪里可以找到相关代码以及这些事件的最大事件周期是多少?
谢谢大家。
【问题讨论】:
-
什么是事件周期值?
-
嗨,玛格丽特,这意味着 PMU 将在发生多少次后收集样本记录。
-
例如-c 1000,表示事件发生1000次后会生成一个样本记录
-
啊,英特尔在其手册中称其为 Counter mask (CMASK)。这是一个 8 位字段,所以我猜 255 是最大值?
-
但是看性能手册,可能是别的东西
标签: linux linux-kernel x86 perf strace