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…