在新购买的笔记本电脑上使用linux有一个问题:我的perf列表中没有可用的硬件缓存效果!嗯,这真的是所有重要的信息,我想要样本!这是我的特权清单:
List of pre-defined events (to be used in -e):
cpu-cycles OR cycles [Hardware event]
instructions [Hardware event]
cache-references [Hardware event]
cache-misses [Hardware event]
branch-instructions OR branches [Hardware event]
branch-misses [Hardware event]
bus-cycles [Hardware event]
ref-cycles [Hardware event]
cpu-clock [Software event]
task-clock [Software event]
page-faults OR faults [Software event]
context-switches OR cs [Software event]
cpu-migrations OR migrations [Software event]
minor-faults [Software event]
major-faults [Software event]
alignment-faults [Software event]
emulation-faults [Software event]
dummy [Software event]
branch-instructions OR cpu/branch-instructions/ [Kernel PMU event]
branch-misses OR cpu/branch-misses/ [Kernel PMU event]
bus-cycles OR cpu/bus-cycles/ [Kernel PMU event]
cache-misses OR cpu/cache-misses/ [Kernel PMU event]
cache-references OR cpu/cache-references/ [Kernel PMU event]
cpu-cycles OR cpu/cpu-cycles/ [Kernel PMU event]
instructions OR cpu/instructions/ [Kernel PMU event]
power/energy-cores/ [Kernel PMU event]
power/energy-gpu/ [Kernel PMU event]
power/energy-pkg/ [Kernel PMU event]
power/energy-ram/ [Kernel PMU event]
ref-cycles OR cpu/ref-cycles/ [Kernel PMU event]
rNNN [Raw hardware event descriptor]
cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware event descriptor]
(see 'man perf-list' on how to encode it)
mem:<addr>[:access] [Hardware breakpoint]
[ Tracepoints not available: Permission denied ]虽然这是我经常看到的perf列表:https://perf.wiki.kernel.org/index.php/Tutorial#Events。
我过去做的是:
sudo perf stat -e L1-dcache-loads,L1-dcache-load-misses,LLC-loads,LLC-load-misses -a --append -o perf.txt [some command to run a file]但这在我的新机器上行不通。在这种情况下,我如何收集我想要的数据?
我正在使用Ubuntu14.04,内核<3.19.0-56>。Perf版本<3.19.8-ckt15 15>。
我安装了papi-tools库,papi_native_avail给了我
Available native events and hardware information.
PAPI Version : 5.3.0.0
Vendor string and code : GenuineIntel (1)
Model string and code : Intel(R) Core(TM) M-5Y71 CPU @ 1.20GHz (61)
CPU Revision : 4.000000
CPUID Info : Family: 6 Model: 61 Stepping: 4
CPU Max Megahertz : 2900
CPU Min Megahertz : 500
Hdw Threads per core : 1
Cores per Socket : 2
Sockets : 2
NUMA Nodes : 1
CPUs per Node : 4
Total CPUs : 4
Running in a VM : no
Number Hardware Counters : 0
Max Multiplex Counters : 64发布于 2016-04-03 09:36:57
首先,检查处理器是否有硬件计数器。Intel Haswell架构停止在最近的处理器中提供硬件计数器(出于某种原因)。
第二,我将检查是否可以通过硬件事件,例如papi。如果Ubuntu提供了足够多的数据库,papi_native_avail命令应该列出您的本地事件。
第三种可能是事件在这里,但不受旧perf的支持。是的,Ubuntu14.04已经有两年历史了,内核/工具可能无法完全支持当前的处理器。
发布于 2020-06-30 11:32:16
我最近偶然遇到了这个问题,但我明白了原因,并成功地解决了这个问题。
起初,sudo perf list只给我提供了几行事件。
对于那些需要perf中完整的硬件事件而没有在perf-list中显示的人,您需要安装最新的linux-tools。
sudo apt-get install linux-tools-4.15.0-106-generic linux-cloud-tools-4.15.0-106-generic linux-tools-generic linux-cloud-tools-generic然后,跑
sudo perf list > perflist.txt给我买了1980年perflist.txt的台词。
https://unix.stackexchange.com/questions/273893
复制相似问题