성능 목록에서 하드웨어 캐시 이벤트를 찾을 수 없는 이유는 무엇입니까?

성능 목록에서 하드웨어 캐시 이벤트를 찾을 수 없는 이유는 무엇입니까?

새로 구입한 노트북에서 Linux 성능을 사용하는 데 문제가 있습니다. 성능 목록에 사용할 수 있는 하드웨어 캐시 효과가 없습니다! 글쎄요, 제가 샘플링하고 싶었던 훌륭한 정보는 말 그대로 전부였습니다! 내 성과 목록은 다음과 같습니다.

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 ]

이전에 본 성능 목록은 다음과 같습니다.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]

하지만 이것은 내 새 컴퓨터에서는 작동하지 않습니다. 이런 상황에서 내가 원하는 데이터를 어떻게 수집할 수 있나요?

저는 Ubuntu 14.04, 커널 <3.19.0-56>을 사용하고 있습니다. 성능 버전 <3.19.8-ckt15>.


고쳐 쓰다

나는 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

답변1

또한 perf list.rootroot

내 Linux Mint 18.1 시스템에서 4.8.0-34-generic 커널을 실행합니다.


$ perf list cache

List of pre-defined events (to be used in -e):

$ sudo perf list cache

List of pre-defined events (to be used in -e):

  L1-dcache-load-misses                              [Hardware cache event]
  L1-dcache-loads                                    [Hardware cache event]
  L1-dcache-stores                                   [Hardware cache event]
  L1-icache-load-misses                              [Hardware cache event]
  LLC-load-misses                                    [Hardware cache event]
  LLC-loads                                          [Hardware cache event]
  LLC-store-misses                                   [Hardware cache event]
  LLC-stores                                         [Hardware cache event]
  branch-load-misses                                 [Hardware cache event]
  branch-loads                                       [Hardware cache event]
  dTLB-load-misses                                   [Hardware cache event]
  dTLB-loads                                         [Hardware cache event]
  dTLB-store-misses                                  [Hardware cache event]
  dTLB-stores                                        [Hardware cache event]
  iTLB-load-misses                                   [Hardware cache event]
  iTLB-loads                                         [Hardware cache event]
  node-load-misses                                   [Hardware cache event]
  node-loads                                         [Hardware cache event]
  node-store-misses                                  [Hardware cache event]
  node-stores                                        [Hardware cache event]

답변2

먼저 프로세서에 하드웨어 카운터가 있는지 확인하십시오. Intel Haswell 아키텍처는 어떤 이유로든 최신 프로세서에서 하드웨어 카운터 제공을 중단했습니다.

papi둘째, 예를 들어 하드웨어 이벤트를 볼 수 있는지 확인하겠습니다. Ubuntu가 충분히 최신 데이터베이스를 제공하는 경우 이 명령은 papi_native_avail기본 이벤트를 나열해야 합니다.

세 번째 가능성은 이벤트가 이미 발생했지만 이전 지원이 없는 경우입니다 perf. 예, Ubuntu 14.04는 2년이 지났으며 커널/도구가 현재 프로세서를 완전히 지원하지 않을 수 있습니다.

답변3

최근에 이 문제가 발생했는데 원인을 파악하고 성공적으로 해결했습니다.

처음에는 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.

관련 정보