使 Perf Kernel Counter 工作的问题

使 Perf Kernel Counter 工作的问题

我编写了一个内核模块,它通过“perf_event_create_kernel_counter”API 创建性能计数器,然后定期读取其值。

我的应用程序适用于内核版本 4.0.9(及之前的修订版),但不适用于内核版本 4.1(及更高版本)。

基本上在内核的后续版本中,我只能读取软件计数器(例如PERF_COUNT_SW_CPU_CYCLES),但不能读取硬件计数器(例如PERF_COUNT_HW_CACHE_MISSES)。

更具体地说,在内核版本 4.1 及更高版本中,硬件计数器的读数始终为零。

有谁知道可能导致此问题的原因以及如何解决它?

相关内容