2017-11-04 10 views
0

프로파일 링을 위해 perf을 사용하고 있지만 모니터링되는 PMU 이벤트의 수가 하드웨어 카운터의 수보다 많으므로 라운드 로빈 다중화 전략이 트리거됩니다. 그러나 일부 테스트 케이스는 1 밀리 초 미만으로 실행될 수 있습니다. 즉, 실행 시간이 기본 스위치 주파수 (1000Hz)의 역수보다 작 으면 일부 이벤트가 프로파일 링되지 않을 수 있습니다.perf stat의 샘플링 빈도를 높일 수 있습니까?

샘플링 빈도를 perf stat으로 올리는 방법은 perf record -F <freqency>과 같이 측정 오버 헤드가 약간 증가해도 모든 이벤트가 기록되도록하려면 어떻게해야합니까?

답변

0

우선 샘플링은 과 다릅니다.

perf record은 프로파일 링 기간 동안 발생한 모든 이벤트 중 샘플링 일 것입니다. 이것은 일어난 모든 사건을 세지는 않을 것이라는 것을 의미합니다 (이것은 물론 비틀어 질 수 있습니다!). 샘플 수집 빈도를 수정하여 수집되는 샘플 수를 늘릴 수 있습니다. 일반적으로 발생하는 매 10 건 (또는 어떤 수> 0 건)과 비슷할 것이며, perf record은 1 건만 기록합니다.

perf stat은 발생하는 모든 이벤트 중입니다. 발생하는 이벤트마다 perf stat샘플링과 달리이를 계산하여 누락되지 않도록 시도합니다. 물론, 멀티플렉싱이 관련된 경우 (즉, 측정 된 이벤트의 수가 사용 가능한 하드웨어 카운터의 수보다 큰 경우) 카운트 된 이벤트의 수는 정확하지 않을 수 있습니다. perf stat에는 주파수를 설정하는 개념이 없으므로 측정하려는 모든 이벤트 중 카운트입니다.

은 리눅스 커널 소스 코드에서 proof입니다 - 그래서 당신은 샘플 주파수가 무엇인지 -

당신은 그것을 0으로 샘플 기간 (샘플 주파수의 역수)를 설정 볼 수 있습니다)

어쨌든 perf stat -v을 사용하여 자세한 내용을 perf stat으로 읽으면 측정중인 모든 이벤트를보고 이해할 수 있습니다.

perf stat에 대한 자세한 내용을 보려면 answer을 읽어 볼 수도 있습니다.