본문 바로가기
IT/Raspberry Pi

라즈베리파이에서 perf 설치하기

by SH_SH 2020. 8. 5.

 

라즈베리파이 3 모델 B에서 라즈비안(May 2020 32-bit)에 Preempt-RT 패치를 적용해 사용하고 있습니다.

커널 버전은 아래와 같이 4.19.71 입니다.

 

perf를 사용하기 위해 apt에서 찾아보았지만 apt로는 4.9 버전과 3.6 버전만 설치가 가능했습니다.

따라서, 직접 파일을 다운로드하여서 설치하였습니다.

 

다운로드와 설치는 아래의 명령어로 할 수 있습니다.

 

 

$ wget http://ftp.kr.debian.org/debian/pool/main/l/linux/linux-perf-4.19_4.19.132-1_armhf.deb 

 

$ sudo dpkg -i linux-perf-4.19_4.19.132-1_armhf.deb

 

만약 libopencsd0 때문에 설치가 안되면 apt로 설치한 뒤 다시 dpkg 명령어로 설치하면 됩니다.

 

$ sudo apt install libopencsd0

 

 

설치가 완료되고 perf를 실행하면 정상적으로 동작하는 것을 볼 수 있습니다.

다음은 라즈베리파이 3에서 사용할 수 있는 perf 이벤트입니다.

 

$ perf list

 

  branch-instructions OR branches                    [Hardware event]
  branch-misses                                            [Hardware event]
  bus-cycles                                                 [Hardware event]
  cache-misses                                             [Hardware event]
  cache-references                                        [Hardware event]
  cpu-cycles OR cycles                                   [Hardware event]
  instructions                                              [Hardware event]
  alignment-faults                                        [Software event]
  bpf-output                                               [Software event]
  context-switches OR cs                               [Software event]
  cpu-clock                                                 [Software event]
  cpu-migrations OR migrations                      [Software event]
  dummy                                                   [Software event]
  emulation-faults                                        [Software event]
  major-faults                                             [Software event]
  minor-faults                                             [Software event]
  page-faults OR faults                                 [Software event]
  task-clock                                               [Software event]
  L1-dcache-load-misses                              [Hardware cache event]
  L1-dcache-loads                                      [Hardware cache event]
  L1-dcache-store-misses                             [Hardware cache event]
  L1-dcache-stores                                     [Hardware cache event]
  L1-icache-load-misses                              [Hardware cache event]
  L1-icache-loads                                       [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-store-misses                                   [Hardware cache event]
  iTLB-load-misses                                     [Hardware cache event]
  armv7_cortex_a7/br_immed_retired/            [Kernel PMU event]
  armv7_cortex_a7/br_mis_pred/                    [Kernel PMU event]
  armv7_cortex_a7/br_pred/                         [Kernel PMU event]
  armv7_cortex_a7/br_return_retired/             [Kernel PMU event]
  armv7_cortex_a7/bus_access/                     [Kernel PMU event]
  armv7_cortex_a7/bus_cycles/                      [Kernel PMU event]
  armv7_cortex_a7/cid_write_retired/              [Kernel PMU event]
  armv7_cortex_a7/cpu_cycles/                     [Kernel PMU event]
  armv7_cortex_a7/exc_return/                     [Kernel PMU event]
  armv7_cortex_a7/exc_taken/                      [Kernel PMU event]
  armv7_cortex_a7/inst_retired/                    [Kernel PMU event]
  armv7_cortex_a7/inst_spec/                       [Kernel PMU event]
  armv7_cortex_a7/l1d_cache/                      [Kernel PMU event]
  armv7_cortex_a7/l1d_cache_refill/               [Kernel PMU event]
  armv7_cortex_a7/l1d_cache_wb/                 [Kernel PMU event]
  armv7_cortex_a7/l1d_tlb_refill/                   [Kernel PMU event]
  armv7_cortex_a7/l1i_cache/                        [Kernel PMU event]
  armv7_cortex_a7/l1i_cache_refill/                 [Kernel PMU event]
  armv7_cortex_a7/l1i_tlb_refill/                    [Kernel PMU event]
  armv7_cortex_a7/l2d_cache/                      [Kernel PMU event]
  armv7_cortex_a7/l2d_cache_refill/                [Kernel PMU event]
  armv7_cortex_a7/l2d_cache_wb/                   [Kernel PMU event]
  armv7_cortex_a7/ld_retired/                        [Kernel PMU event]
  armv7_cortex_a7/mem_access/                    [Kernel PMU event]
  armv7_cortex_a7/memory_error/                 [Kernel PMU event]
  armv7_cortex_a7/pc_write_retired/                [Kernel PMU event]
  armv7_cortex_a7/st_retired/                        [Kernel PMU event]
  armv7_cortex_a7/sw_incr/                           [Kernel PMU event]
  armv7_cortex_a7/ttbr_write_retired/              [Kernel PMU event]
  armv7_cortex_a7/unaligned_ldst_retired/        [Kernel PMU event]
  rNNN                                                   [Raw hardware event descriptor]
  cpu/t1=v1[,t2=v2,t3 ...]/modifier                  [Raw hardware event descriptor]
  mem:<addr>[/len][:access]                          [Hardware breakpoint]