我的目标是从另一个内核模块中读取内核3.14(perf_event_intel_rapl.c)中引入的intel rapl计数器(lwn-link)。使用perf_event_create_kernel_counter
可以轻松阅读“常规”计数器。我找到了一个很好的例子:http://wadeatwork.com/?p=1SW_CPU_CLOCK
perf联机帮助页(link)表示,“非广义”事件PERF_TYPE_RAW
应与perf_event_attr->type
一起用作特定于实现的配置字段。
我的问题是如何配置perf_event_attr
结构以访问rapl计数器。我还没有找到任何关于如何从内核模块实现这一目标的文档。
答案 0 :(得分:0)
对RAPL的perf_event支持包括可在系统范围内访问的通用事件,需要root访问权限(sudo)。
你应该尝试命令:
sudo perf list
并查看事件power / energy-cores /是否存在,如果没有,则CPU没有RAPL支持或perf_event不启用CPU上的RAPL功能。如果您的CPU支持RAPL但在perf_event中未启用,则可以adding RAPL support for your CPU to perf_event as described in this link启用它。
支持CPU后,您可以使用perf工具使用以下命令进行性能分析:
sudo perf stat -e power/energy-cores
有关详细信息,请参阅a guide with steps to sample RAPL events using perf tool,其中详细介绍了上述内容并提供了一些代码。