perf probe

Au cours des sections précédentes, nous avons vu que perf n’est pas seulement un outil d’analyse de l’utilisation du temps CPU, mais peut surveiller un très grand nombre d’événements système, ce qui permet un suivi de l’activité du CPU et du noyau Linux à grain fin.

Mais l’ensemble des indicateurs d’activité système que nous avons suivis jusqu’à présent étaient basés sur des tracepoints, une forme d’instrumentation mise en place manuellement par les développeurs du noyau Linux en des points stratégiques du code du noyau. Avec cette instrumentation manuelle, il ne nous est par définition pas possible d’instrumenter du code qui n’a pas été pensé pour être instrumenté, que ce soit dans le noyau ou en-dehors, à moins d’être prêt à modifier et recompiler le code en question.

Dans cette section, nous allons voir que les tracepoints ne sont pas la seule forme d’instrumentation supportée par perf, et qu’il est en réalité possible d’instrumenter presque n’importe quel code pour qu’il soit observable par perf, que ce code soit situé dans le noyau Linux ou dans une application ou bibliothèque…