首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能在我的perf列表中找到硬件缓存事件?

为什么我不能在我的perf列表中找到硬件缓存事件?
EN

Unix & Linux用户
提问于 2016-04-02 19:16:47
回答 2查看 6.2K关注 0票数 2

在新购买的笔记本电脑上使用linux有一个问题:我的perf列表中没有可用的硬件缓存效果!嗯,这真的是所有重要的信息,我想要样本!这是我的特权清单:

代码语言:javascript
复制
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

我过去做的是:

代码语言:javascript
复制
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给了我

代码语言:javascript
复制
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
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2016-04-03 09:36:57

首先,检查处理器是否有硬件计数器。Intel Haswell架构停止在最近的处理器中提供硬件计数器(出于某种原因)。

第二,我将检查是否可以通过硬件事件,例如papi。如果Ubuntu提供了足够多的数据库,papi_native_avail命令应该列出您的本地事件。

第三种可能是事件在这里,但不受旧perf的支持。是的,Ubuntu14.04已经有两年历史了,内核/工具可能无法完全支持当前的处理器。

票数 0
EN

Unix & Linux用户

发布于 2020-06-30 11:32:16

我最近偶然遇到了这个问题,但我明白了原因,并成功地解决了这个问题。

起初,sudo perf list只给我提供了几行事件。

对于那些需要perf中完整的硬件事件而没有在perf-list中显示的人,您需要安装最新的linux-tools

代码语言:javascript
复制
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

然后,跑

代码语言:javascript
复制
sudo perf list > perflist.txt

给我买了1980年perflist.txt的台词。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/273893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档