[英]Reading raw perf counter from kernel module
我的目標是從另一個內核模塊中讀取內核3.14( lwn-link )中引入的intel rapl計數器( perf_event_intel_rapl.c )。 使用perf_event_create_kernel_counter
可以輕松讀取“常規”計數器。 我發現了一個很好的例子: http : //wadeatwork.com/?p=1SW_CPU_CLOCK
perf手冊頁( 鏈接 )說,對於“非通用”事件, PERF_TYPE_RAW
應該與perf_event_attr->type
以及實現特定的配置字段一起使用。
我的問題是我應該如何配置perf_event_attr
結構以便訪問rapl計數器。 我還沒有找到任何有關如何從內核模塊實現此目標的文檔。
對RAPL的perf_event支持包括可在系統范圍內訪問的通用事件,需要root訪問(sudo)。
您應該嘗試以下命令:
sudo perf list
並查看是否存在事件power / energy-cores /,如果不是,則說明您的CPU不支持RAPL,或者perf_event沒有啟用CPU上的RAPL功能。 如果您的CPU支持RAPL,但未在perf_event中啟用它,則可以通過按以下鏈接中所述將CPU對RAPL的支持添加到perf_event中來啟用它。
一旦支持了CPU,就可以使用perf工具通過以下命令進行性能分析:
sudo perf stat -e power/energy-cores
有關更多詳細信息,這是一個指南,其中包含使用perf工具對RAPL事件進行采樣的步驟 ,該工具詳細介紹了上述內容並提供了一些代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.