![성능 커널 카운터가 작동하는 데 문제가 있습니다.](https://linux55.com/image/84306/%EC%84%B1%EB%8A%A5%20%EC%BB%A4%EB%84%90%20%EC%B9%B4%EC%9A%B4%ED%84%B0%EA%B0%80%20%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94%20%EB%8D%B0%20%EB%AC%B8%EC%A0%9C%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
나는 "perf_event_create_kernel_counter" API를 통해 성능 카운터를 생성한 다음 주기적으로 그 값을 읽는 커널 모듈을 작성했습니다.
내 응용 프로그램은 커널 버전 4.0.9(및 이전 개정판)에서는 작동하지만 커널 버전 4.1(이상)에서는 작동하지 않습니다.
기본적으로 커널의 후속 버전에서는 소프트웨어 카운터(예: PERF_COUNT_SW_CPU_CYCLES
)만 읽을 수 있지만 하드웨어 카운터(예: PERF_COUNT_HW_CACHE_MISSES
)는 읽을 수 없습니다.
보다 구체적으로 말하면 커널 버전 4.1 이상에서는 하드웨어 카운터가 항상 0으로 표시됩니다.
이 문제의 원인과 해결 방법을 아는 사람이 있습니까?