我搜索了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中.
例如,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.