我搜索了perf stat命令监视的每个事件的含义的详尽解释;

我发现了一个tutorial,它很好地解释了如何使用perf工具的不同功能.然而,它并没有解释可以观察到的几个事件的意义(并且有很多!!).

有人知道在哪里是一个非常简单和完整的文件,关于perf列表命令列出的事件?

特别是,我有兴趣找出我写的一些应用程序使用的cpu的百分比.
我可以通过cpu-clock还是task-clock直接测量?
这两个事件的意思是什么?

提前致谢

解决方法

perf工具使用性能计数器,其含义记录在处理器手册中.对于intel处理器,这是英特尔64和IA-32架构开发人员手册:Vol. 3B,附录A.

http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

有些复杂的事情是,perf使用“象征性”的名字.这些名称和处理器事件类型之间的映射可以在内核源中找到.对于intel处理器,这是在arch / x86 / kernel / cpu / perf_event_intel.c中.

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/kernel/cpu/perf_event_intel.c?id=dea4f48a0a301b23c65af8e4fe8ccf360c272fbf#n2367

例如,perf事件“stalled-cycles-frontend”映射到

/* UOPS_ISSUED.STALLED_CYCLES */
    intel_perfmon_event_map[PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] =
        X86_CONFIG(.event=0x0e,.umask=0x01,.inv=1,.cmask=1);

这被记录为

Counts the number of cycles no Uops issued by the Register Allocation
Table to the Reservation Station,i.e. the UOPs issued from the front
end to the back end.

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。