perf
e o kernel estão muito próximos, de fato perf
é parte do código-fonte do kernel. No fundo, você deve pensar nisso como uma ferramenta específica do kernel; mas a prática e os requisitos de empacotamento nas distribuições do Linux significam que os usuários acabam pensando nela como uma ferramenta "padrão".
Não há uma interface perf
-private especial entre perf
e o kernel, portanto, as partes perf
-supporting do kernel precisam seguir as regras usuais de virada para o espaço do usuário - ie manter compatibilidade com versões anteriores; Portanto, em teoria, seria possível executar uma versão mais antiga do perf
com um kernel mais novo, já que o kernel mais novo deve suportar qualquer interface que a versão antiga do perf
use para se comunicar com ele. No entanto, na prática, se você precisar usar perf
para investigar o desempenho de uma carga de trabalho em um determinado kernel, também será necessário investigar todos os recursos que afetam o desempenho desse kernel específico; uma versão mais antiga do perf
não suporta recursos que foram adicionados depois que foi lançada, portanto, você normalmente precisaria da versão correspondente de perf
mesmo assim. Como resultado de tudo isso, a opção pragmática é exigir uma versão do perf
correspondente ao kernel em execução.