Eu escrevi um módulo do kernel que cria um contador de desempenho através da API "perf_event_create_kernel_counter" e depois lê periodicamente seu valor.
Meu aplicativo funciona no Kernel versão-4.0.9 (e revisões anteriores), mas não funciona no Kernel versão 4.1 (e revisões posteriores).
Basicamente, nas revisões posteriores do Kernel, consigo ler somente contadores de software (por exemplo, PERF_COUNT_SW_CPU_CYCLES
), mas nenhum contador de hardware (por exemplo, PERF_COUNT_HW_CACHE_MISSES
).
Mais especificamente, o contador de hardware sempre lê zero na revisão do kernel 4.1 e posterior.
Alguém tem uma ideia do que pode estar causando esse problema e como corrigi-lo?
Tags kernel-modules perf-event