gpt4 book ai didi

linux-kernel - 使用 perf userland 工具和 PEBS 进行基于事件的采样

转载 作者:行者123 更新时间:2023-12-01 01:16:58 25 4
gpt4 key购买 nike

我正在使用 perf userland 工具进行基于事件的采样:目标是试图找出某些影响性能的事件(如分支未命中和缓存未命中)在我正在处理的更大系统上发生的位置。

现在,像

perf record -a -e branch-misses:pp -- sleep 5

完美运行:在收集样本中的 IP 时,由“pp”修饰符触发的 PEBS 计数模式非常准确。

不幸的是,当我尝试对缓存未命中做同样的事情时,即
perf record -a -e cache-misses:pp -- sleep 5 # [1]

我得到

Error: sys_perf_event_open() syscall returned with 22 (Invalid argument). /bin/dmesg may provide additional information.

Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?


dmesg | grep "perf\|pmu"没有显示任何有用的 AFAICT。我也很确定内核是用 CONFIG_PERF_EVENTS=y 编译的,因为 [1] 和
perf record -a -e cache-misses -- sleep 5 # [2]

工作:[2] 的问题是收集的样本不是很准确,这会损害我的个人资料。

关于这里可能发生什么的任何提示?

最佳答案

事实证明,泛型 cache-misses 的特定事件映射到不支持 PEBS。另一种方法是使用 的事件之一。是 PEBS 支持(请参阅 Nehalem 架构列表 here )并使用适当的掩码来缩小范围。具体来说,可以使用 MEM_LOAD_RETIRED:LLC_MISS,即使该事件似乎并非在所有情况下都准确。

关于linux-kernel - 使用 perf userland 工具和 PEBS 进行基于事件的采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440182/

25 4 0
文章推荐: jquery - 在 jQuery 中的空
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com