Article de reference

trace de pas

ftrace ( Function Tracer ) est un framework de traçage pour le noyau Linux . Bien que son nom d'origine, Function Tracer, provienne de la capacité de ftrace à enregistrer des in...

ftrace ( Function Tracer ) est un framework de traçage pour le noyau Linux . Bien que son nom d'origine, Function Tracer, provienne de la capacité de ftrace à enregistrer des informations liées à divers appels de fonctions effectués pendant l'exécution du noyau , les capacités de traçage de ftrace couvrent une gamme beaucoup plus large d'opérations internes du noyau.

Détails

Avec ses différents plugins de traceur, ftrace peut cibler différents points de trace statiques , tels que les événements de planification , les interruptions , les E/S mappées en mémoire , les transitions d'état d'alimentation du processeur et les opérations liées aux systèmes de fichiers et à la virtualisation . De plus, le suivi dynamique des appels de fonctions du noyau est disponible, éventuellement restreint à un sous-ensemble de fonctions à l'aide de globs , et avec la possibilité de générer des graphiques d'appels et de fournir des rapports d'utilisation de la pile . Dans le même temps, ftrace peut être utilisé pour mesurer diverses latences au sein du noyau Linux, comme la durée pendant laquelle les interruptions ou la préemption sont désactivées.

Un noyau Linux compatible ftrace est construit en activant l' option de configuration du noyau CONFIG_FUNCTION_TRACER . L'interaction d'exécution complète avec ftrace est effectuée via des fichiers virtuels lisibles et inscriptibles contenus dans un système de fichiers debugfs monté spécifiquement ; par conséquent, ftrace ne nécessite aucun utilitaire d'espace utilisateur spécialisé pour fonctionner. Cependant, il existe des utilitaires d'espace utilisateur supplémentaires qui fournissent des fonctionnalités plus avancées pour l'enregistrement, l'analyse et la visualisation des données ; des exemples de tels utilitaires sont trace-cmd et KernelShark .

En interne, ftrace s'appuie sur le mécanisme de profilage de gcc pour ajouter des instructions machine aux versions compilées de toutes les fonctions du noyau au niveau source , qui redirigent l'exécution des fonctions vers les trampolines et les plugins tracer de ftrace qui effectuent le traçage réel. Ces instructions de « point d'entrée » créées par gcc sont modifiées par ftrace au démarrage du noyau , et modifiées ultérieurement au moment de l'exécution par ftrace entre les NOP et les sauts réels vers les trampolines de traçage, en fonction des types de traçage et des options configurées au moment de l'exécution.

ftrace est développé principalement par Steven Rostedt et a été intégré à la ligne principale du noyau Linux dans la version 2.6.27 du noyau, publiée le 9 octobre 2008.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index