2012-07-11 4 views
4

perf 사용자 랜드 도구를 사용하여 이벤트 기반 샘플링을 수행합니다. 지점 미스 및 캐시 누락과 같은 특정 성능 영향 이벤트가 발생하는 곳을 찾기 위해 노력하고 있습니다. 내가 일하고있는 더 큰 시스템.perf userland 도구 및 PEBS를 사용한 이벤트 기반 샘플링

이제 완벽하게

perf record -a -e branch-misses:pp -- sleep 5 

작품 같은 : 샘플의 IP를 수집 할 때 '쪽'수정에 의해 trigerred PEBS 카운트 모드는 정말 정확하다. 불행하게도

, 내가 캐시 미스에 대해 동일한 작업을 수행하려고, 즉

perf record -a -e cache-misses:pp -- sleep 5 # [1] 

나는

Error: sys_perf_event_open() syscall returned with 22 (Invalid argument). /bin/dmesg may provide additional information.

Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?

dmesg | grep "perf\|pmu" 아무것도 유용 AFAICT을 보여줍니다 얻는다. 또한 커널 = CONFIG_PERF_EVENTS와 y로 컴파일 된 것을 확신하기 때문에 모두 [1]

perf record -a -e cache-misses -- sleep 5 # [2] 

일 :의 문제 [2] 수집 된 샘플 내 프로필 아파하는, 매우 정확 아니라는 것을 인 .

여기에 무슨 일이 일어날 지에 대한 암시가 있습니까?

답변

4

일반 cache-misses에 매핑되는 특정 이벤트가 PEBS를 지원하지 않습니다. 또는 인 이벤트 중 하나를 PEBS (Nehalem 아키텍처 here 목록 참조)에서 지원하는 이벤트 중 하나를 적절한 마스크와 함께 사용하여 범위를 좁힐 수 있습니다. 특히 이벤트가 모든 경우에 정확하지는 않지만 MEM_LOAD_RETIRED : LLC_MISS를 사용할 수 있습니다.

+0

Nehalem의 이벤트 목록에 대한 링크가 끊어졌습니다. 다른 위치의 새 링크는 https://download.01.org/perfmon/NHM-EP/NehalemEP_core_V1.json입니다. – papirrin