Acho o comportamento de perf top -e cache-misses:pp -p <my_pid>
bastante confuso. Eu possuo um Intel i5-3230M, rodando o kernel 4.4.5 de 64 bits.
Se eu apenas executar esse comando, basicamente não obtenho amostras do meu aplicativo (uma simulação numérica com grandes conjuntos de dados, portanto, é necessário mostrar falhas de cache), mas quase somente de algumas funções do kernel, como intel_pmu_lbr_enable_all
, native_write_msr_safe
, native_read_msr_safe
, __intel_pmu_lbr_disable
. Se eu limitar as ocorrências para o espaço do usuário com -K
, obtenho apenas resultados em meu aplicativo, mas com uma contagem muito baixa. Se eu remover um modificador "preciso" ( p
), recebo muitos mais hits, mas de opcodes que evidentemente não causam carga / gravação de memória.
Como devo interpretar esse comportamento? O que exatamente conta como "falta de cache"?