여러 (물리적) 프로세서가있는 (Intel Xeon) 시스템에서 특정 하드웨어 이벤트를 측정하려고합니다. 구체적으로 말하면, 'offcore'데이터를 읽기 위해 얼마나 많은 요청이 내려 졌는지 알고 싶습니다.perf를 사용하여 원시 이벤트 카운터를 모니터
하드웨어 이벤트가 Intels 문서에서 발견되었고 이벤트 설명자를 0xB0으로, 데이터 요청의 경우 추가 마스크 0x01을 제공합니다.
perf record -e r0B1 ./mytestapp someargs
또는이 올바르지 않습니다 이벤트를 0xB1 (즉 0xB0 | 0x01
)를 기록하고로 전화를 반환 한에게
perf report
에는 이와 같이 입력 한 이벤트에 대한 출력이 표시되지 않기 때문에. (이 사람이 나를 위해 작동하지만), 또는 인코딩 된 방법
반환 한 문서 떨어져 그것이 어떤 이벤트 말을하지 않는 tutorial entry에서,이 분야에서 좀 부족 ...
는어떤 도움이다 대단히 감사합니다.
문자열로 표시되는 이벤트 이름을 HW 공급 업체가 문서화 한 원시 이벤트 또는 OS 특정 인코딩 인 이벤트 인코딩으로 변환하는 데 도움이되는 libpfm을 살펴보십시오. 후자의 경우, 라이브러리는 이벤트를 설정하기 위해 커널이 필요로하는 OS 특정 데이터 구조를 준비 할 수 있습니다. – redblackbit
@redblackbit 위대한 발견! 감사합니다 – Patrick
'showevtinfo'와'check_events'의 도움으로 perf에 대한 원시 이벤트를 인코딩하는 libpfm4 사용에 대한 http://www.bnikolic.co.uk/blog/hpc-prof-events.html 페이지가 있습니다. Patrick, 질문과 답변에 감사드립니다. – osgx