2014-09-04 96 views
1

我的目標是從另一個內核模塊中讀取內核3.14(lwn-link)中引入的intel rapl計數器(perf_event_intel_rapl.c)。使用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

對RAPL的perf_event支持包括可在系統範圍內訪問的廣義事件,需要root訪問權限(sudo)。

你應該嘗試的命令:

sudo perf list 

,並看看是否該事件動力/能源核心/有沒有,如果沒有,無論是你的CPU沒有RAPL支持或perf_event不啓用RAPL功能上你的CPU。如果您的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描述上面的細節,並提供了一些代碼。