我尝试使用linux / perf_event.h手动使用性能测量。作为参考:我按照ozlabs.org/~anton/junkcode/perf_events_example1.c中的描述进行类似的操作
我想阅读一些特定的性能计数器事件,例如我想要有这个事件 UOPS_ISSUED.ANY,Cmask = 1,Inv = 1(计算停顿周期)。
那么我有attr.type = PERF_TYPE_RAW和attr.config = 0x010E。但是我在哪里可以指定Cmask和Inv?
答案 0 :(得分:1)
Cmask和Inv是特定于体系结构的属性。我假设您使用的是x86。然后属性在arch / x86 / kernel / cpu / perf_event.h中的结构x86_pmu_config中
您可以使用在同一文件中定义的宏X86_CONFIG为attr.config创建足够的值。例如:
X86_CONFIG(.event = 0xb1,.umask = 0x3f,.inv = 1,.cmask = 1);
如此link中所述。