Installations

Packaging de perf

Le packaging du profileur perf varie malheureusement d’une distribution Linux à une autre. Sauf indication contraire, je vais vous donner ici les instructions pour la distribution openSUSE, qui seront à adapter pour votre distribution favorite.

Le minimum vital pour utiliser perf est bien sûr d’installer le paquet perf, qui porte ce nom sur la plupart des distributions utilisant des paquets RPM. Sous Debian et Ubuntu, il n’existe pas de paquet dédié, il faut à la place installer les paquets linux-tools-common et linux-tools-$(uname -r).

Je recommande très fortement l’installation de perf via le gestionnaire de paquet de la distribution, car il faut s’assurer que la version de perf installée reste compatible avec la version noyau installée, et l’installation via le gestionnaire de paquet offre cette garantie automatiquement et la préserve au fil des mises à jour système futures…

Symboles de déboguage

Applications

Pour pouvoir profiler du code dans des conditions optimales, vous aurez besoin des informations de déboguage et idéalement du code source des programmes que vous comptez analyser, ainsi que pour l’ensemble des autres programmes et bibliothèques qu’ils utilisent de façon transitive.

Sous openSUSE, pour chaque paquet xyz qu’on veut analyser, il faut installer les paquets xyz-debuginfo et xyz-debugsource associés. Sur des systèmes qui ont l’analyse de performances comme vocation première, tels que srv-calcul-ambulant, il peut être intéressant de prendre l’habitude d’installer les paquets -debuginfo et -debugsource de façon systématique.

Pour les binaires que vous compilez vous-même, il faut demander au compilateur de générer ces informations. Avec GCC et clang, l’option -g joue ce rôle. Dans le cas des projets compilés avec CMake, l’option -DCMAKE_BUILD_TYPE=RelWithDebInfo est votre amie.

Noyau Linux

Pour pouvoir profiler l’activité du noyau Linux, vous aurez également besoin des informations de déboguage et du code source du noyau. Sous openSUSE il s’agit des paquets kernel-default-debuginfo, kernel-default-debugsource et kernel-sources, en supposant que vous utilisiez le noyau par défaut de la distribution (default).

Désassembleur Intel xed

Pour afficher les instructions assembleur quand vous utilisez Intel PT, vous aurez besoin de l’outil xed de Intel. Celui-ci est rarement inclus dans les distributions Linux, il s’installe comme ceci :

git clone https://github.com/intelxed/mbuild.git mbuild \
&& git clone https://github.com/intelxed/xed \
&& cd xed \
&& ./mfile.py --share \
&& ./mfile.py examples \
&& sudo ./mfile.py --prefix=/usr/local install \
&& sudo ldconfig \
&& sudo cp obj/wkit/examples/obj/xed /usr/local/bin

Si tout s’est bien passé, à la fin vous aurez un exécutable xed fonctionnel :

xed | head -3

Intel XED