我試圖通過以下命令使用事件功率/能量核心/使用perf工具讀取內核空間中的系統功率:爲什麼我不能使用功率/能量核心的perf事件修改器/
perf stat -a -e power/energy-cores/:k -I 1000 sleep 10
的:k是想在這個文檔https://perf.wiki.kernel.org/index.php/Tutorial描述colects的事件只是在內核空間的修飾,但是當我使用這個:き得到的錯誤如下:
[email protected]:/sys/bus/event_source/devices/cpu$ sudo perf stat -a -e
power/energy-cores/:k -I 1000 sleep 30
event syntax error: '..nergy-cores/:k'
\___ parser error
Run 'perf list' for a list of valid events
Usage: perf stat [<options>] [<command>]
-e, --event <event> event selector. use 'perf list' to list available events
首先我雖然這個事件不支持:k修飾符,但我做了其他測試,現在我認爲這可能是一個bug o我試着用錯誤的語法。爲了測試它,我試過其他事件象下面這樣:
的緩存缺失事件可以以兩種方式高速緩存未命中或CPU /緩存缺失堪稱/所以我用改性
[email protected]:/sys/bus/event_source/devices/cpu$ sudo perf stat -a -e cache-misses:k -I 1000 sleep 5
# time counts unit events
1.000429017 287.589 cache-misses:k
2.000828552 195.999 cache-misses:k
3.001086195 216.885 cache-misses:k
4.001438671 240.842 cache-misses:k
5.000702347 314.469 cache-misses:k
[email protected]:/sys/bus/event_source/devices/cpu$ sudo perf stat -a -e cpu/cache-misses/:k -I 1000 sleep 5
event syntax error: '..ache-misses/:k'
\___ parser error
Run 'perf list' for a list of valid events
Usage: perf stat [<options>] [<command>]
-e, --event <event> event selector. use 'perf list' to list available events
[email protected]:/sys/bus/event_source/devices/cpu$ sudo perf stat -a -e cpu/cache-misses/ -I 1000 sleep 5
# time counts unit events
1.000379149 1.949.866 cpu/cache-misses/
2.000628057 1.023.040 cpu/cache-misses/
3.000906500 1.284.476 cpu/cache-misses/
4.001197960 853.127 cpu/cache-misses/
5.000762257 722.242 cpu/cache-misses/
有人嘗試都有一個線索我怎麼能使用:k修改器的功率/能量核心/事件?
結果: 它的工作沒有:正如答案所指出的,但不幸的是對我來說似乎不支持修飾符。
[email protected]:~$ sudo perf stat -a -e power/energy-cores/k -I 1000 sleep 5
# time counts unit events
1.000099515 <not supported> Joules power/energy-cores/k
2.000246523 <not supported> Joules power/energy-cores/k
3.000440743 <not supported> Joules power/energy-cores/k
4.000673143 <not supported> Joules power/energy-cores/k
5.000722624 <not supported> Joules power/energy-cores/k
[email protected]:~$ sudo perf stat -a -e power/energy-cores/ -I 1000 sleep 5
# time counts unit events
1.000128209 0,19 Joules power/energy-cores/
2.000257170 0,25 Joules power/energy-cores/
3.000406715 0,26 Joules power/energy-cores/
4.000571140 0,20 Joules power/energy-cores/
5.000711815 1,01 Joules power/energy-cores/
5.000882867 0,00 Joules power/energy-cores/
嗨@Arnabjyoti卡利塔你是正確的問題是:我的系統支持更強大的能量/能量核心,但無論如何,似乎不是用k或任何其他修改器。 你對這些修飾符如何被支持有任何線索嗎?我非常需要它,如果沒有其他方式,我需要嘗試添加支持。 –
Hi @Leandro,當你運行perf stat命令時,你會收到什麼樣的消息?你怎麼知道即使系統支持這個事件,你沒有得到正確/合適的值? –
我在我的問題的末尾添加了結果,事件在perf列表中被設置,並且它返回沒有修飾符的值,但是我需要的是由內核和用戶空間分隔的值。 –