Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 使用perf监视原始事件计数器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图测量具有多个(物理)处理器的(Intel Xeon)机器上的某些硬件事件.具体来说,我想知道为读取’offcore’数据发出了多少请求. 我在Intels文档中找到了the OFFCORE_requESTS硬件事件,它给出了事件描述符0xB0和数据需求,附加掩码0x01. 然后告诉perf记录事件0xB1(即0xB0 | 0x01)并将其称为: perf record -e r0B1 ./m
我试图测量具有多个(物理)处理器的(Intel Xeon)机器上的某些硬件事件.具体来说,我想知道为读取’offcore’数据发出了多少请求.

我在Intels文档中找到了the OFFCORE_REQUESTS硬件事件,它给出了事件描述符0xB0和数据需求,附加掩码0x01.

然后告诉perf记录事件0xB1(即0xB0 | 0x01)并将其称为:

perf record -e r0B1 ./myTestapp someargs

或者这是不正确的?
因为perf报告显示没有像这样输入的事件的输出.

这个领域的perf文档相当稀疏,除了@L_197_3@之外没有说明它是哪个事件(尽管这个对我有用),或者它是如何编码的……

任何帮助是极大的赞赏.

解决方法

好的,所以我想我明白了.

对于我使用的Intel机器,格式如下:
<&umask的GT;< eventSELEctor>其中两者都是十六进制值.可以删除umask的前导零,但不能删除事件选择器.

因此,对于带有掩码0x01的事件0xB0,我可以调用

perf record -e r1B0 ./myTestapp someargs

我无法在perf内核代码中找到它的确切解析(这里有任何内核黑客?),但我找到了这些来源:

> the c’t magazine 13/03 (subscription required)使用Perf与原始事件的描述,其中描述了一些原始事件及其描述来自英特尔架构软件开发人员Manuel(第3b卷)
> kernel mailing list上的一个补丁,讨论了记录它的正确方法.它指出上面的模式是“…… x86具体而且不完整”
>(更新)较新版本的手册页显示了Intel机器上的示例:R_533_11845@an perf-list

更新:正如评论中指出的那样(谢谢!),libpfm转换器可用于获取正确的事件描述符.用户’osgx’发现的评论链接的网站(Bojan Nikolic:如何监控所有cpu性能事件)更详细地解释了它.

大佬总结

以上是大佬教程为你收集整理的linux – 使用perf监视原始事件计数器全部内容,希望文章能够帮你解决linux – 使用perf监视原始事件计数器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。