Comment vérifier si le ftrace du noyau est activé sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), nous allons explorer comment déterminer si l'outil de tracing puissant du noyau Linux, ftrace, est activé et accessible sur votre système. Nous commencerons par examiner le répertoire /sys/kernel/debug/tracing, qui sert d'interface principale pour interagir avec ftrace.

Après la vérification initiale, nous utiliserons l'outil trace-cmd pour vérifier davantage la fonctionnalité de ftrace et lister les options de tracing disponibles. Enfin, nous examinerons les paramètres de configuration pertinents dans le système de fichiers /proc/sys/kernel pour mieux comprendre la configuration de ftrace.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") subgraph Lab Skills linux/echo -.-> lab-558792{{"Comment vérifier si le ftrace du noyau est activé sous Linux"}} linux/ls -.-> lab-558792{{"Comment vérifier si le ftrace du noyau est activé sous Linux"}} linux/cat -.-> lab-558792{{"Comment vérifier si le ftrace du noyau est activé sous Linux"}} linux/ps -.-> lab-558792{{"Comment vérifier si le ftrace du noyau est activé sous Linux"}} end

Vérifier l'état de ftrace avec ls /sys/kernel/debug/tracing

Dans cette étape, nous allons commencer à explorer ftrace, un outil de tracing puissant intégré au noyau Linux. ftrace permet aux développeurs et aux administrateurs système de comprendre le comportement à l'exécution du noyau.

L'interface principale pour interagir avec ftrace est le système de fichiers de débogage, situé spécifiquement à /sys/kernel/debug/tracing.

Tout d'abord, vérifions si le système de fichiers de débogage est monté et si le répertoire tracing existe. Nous pouvons utiliser la commande ls pour lister le contenu de ce répertoire.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

ls /sys/kernel/debug/tracing

Vous devriez voir une liste de fichiers et de répertoires liés à ftrace. La sortie exacte peut varier en fonction de la version et de la configuration du noyau, mais elle devrait ressembler à ceci :

README                       events                       options
available_events             free_buffer                  per_cpu
available_filter_functions   function_graph_max_depth     printk_formats
available_tracers            function_graph_tracer        set_event
buffer_size_kb               function_profile_dynamic     set_filter
buffer_total_size_kb         function_trace               set_ftrace_filter
current_tracer               instances                    set_ftrace_notrace
dynamic_filter               kprobe_events                set_graph_function
enabled                      kprobe_profile               set_graph_notrace
error_log                    max_graph_depth              set_tracer
event_sources                options                      snapshot
tracing_cpumask              tracing_max_latency          tracing_on
tracing_thresh               trace                        trace_clock
trace_marker                 trace_options                trace_pipe
trace_stat

Si vous obtenez une sortie similaire, cela signifie que l'interface ftrace est disponible sur votre système. Si vous obtenez une erreur comme "No such file or directory" (Aucun fichier ou répertoire de ce type), cela peut indiquer que le système de fichiers de débogage n'est pas monté ou que ftrace n'est pas activé dans le noyau. Cependant, dans l'environnement LabEx, il devrait être disponible.

Ce répertoire contient divers fichiers qui contrôlent le comportement de ftrace et fournissent des données de tracing. Nous explorerons certains de ces fichiers dans les étapes suivantes.

Pour l'instant, simplement vérifier l'existence de ce répertoire et de son contenu confirme que vous pouvez interagir avec ftrace.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier ftrace avec trace-cmd list

Dans l'étape précédente, nous avons confirmé la présence de l'interface ftrace dans le système de fichiers de débogage. Maintenant, utilisons un outil en ligne de commande appelé trace-cmd pour interagir avec ftrace. trace-cmd est un utilitaire en espace utilisateur qui simplifie le processus de configuration et de collecte de données à partir de ftrace.

L'une des fonctions utiles de trace-cmd est de lister les événements de tracing et les traceurs disponibles. Cela nous aide à comprendre ce que nous pouvons surveiller avec ftrace.

Utilisons trace-cmd list pour voir les traceurs disponibles. Les traceurs sont différents modes de fonctionnement pour ftrace, permettant de tracer différents aspects du noyau.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

trace-cmd list -t

L'option -t indique à trace-cmd de lister les traceurs disponibles. Vous devriez voir une sortie similaire à celle-ci :

List of available tracers:
 blk
 function
 function_graph
 irqsoff
 nop
 preemptirqsoff
 wakeup
 wakeup_rt

Cette sortie montre les différents traceurs disponibles sur ce système. Par exemple, function trace les appels de fonction, et function_graph trace les appels de fonction et leur graphe d'appel.

Ensuite, listons les événements disponibles qui peuvent être tracés. Les événements sont des points spécifiques dans le noyau où des informations de tracing peuvent être collectées.

Tapez la commande suivante et appuyez sur Entrée :

trace-cmd list -e

L'option -e indique à trace-cmd de lister les événements disponibles. Cette commande produira une longue liste d'événements, classés par sous-systèmes (par exemple, sched, syscalls, ext4). La sortie ressemblera à ceci (seule une petite partie est affichée) :

List of available events:
  ftrace:
    ftrace_buffer_overrun
    ftrace_inject_event
    ftrace_print_event
  kmem:
    kmem_cache_alloc
    kmem_cache_alloc_node
    kmem_cache_free
    kmem_cache_free_page
    kmem_cache_free_pages
    kmem_cache_grow
    kmem_cache_shrink
    mm_page_alloc
    mm_page_alloc_zone_locked
    mm_page_free
    mm_page_free_batched
    mm_page_pcpu_drain
  ... (many more events)

Vous pouvez faire défiler la sortie pour voir le grand nombre d'événements disponibles pour le tracing. Cela démontre la visibilité détaillée que ftrace offre sur les opérations du noyau.

L'utilisation de trace-cmd list est un bon moyen d'obtenir une vue d'ensemble de ce que ftrace peut surveiller sur votre système spécifique.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter la configuration de ftrace dans /proc/sys/kernel

En plus de l'interface du système de fichiers de débogage située à /sys/kernel/debug/tracing, certaines configurations liées à ftrace peuvent également être trouvées dans le répertoire /proc/sys/kernel. Le système de fichiers /proc est un système de fichiers virtuel qui fournit des informations sur les processus et d'autres informations système. Le répertoire /proc/sys contient des fichiers qui vous permettent de visualiser et de modifier les paramètres du noyau à l'exécution.

Inspectons certains fichiers dans /proc/sys/kernel qui sont liés à ftrace. Nous pouvons utiliser la commande cat pour visualiser le contenu de ces fichiers.

Tout d'abord, vérifions le fichier ftrace_enabled. Ce fichier indique si ftrace est actuellement activé dans le noyau.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

cat /proc/sys/kernel/ftrace_enabled

Vous devriez voir une sortie comme celle-ci :

1

Une valeur de 1 signifie que ftrace est activé, et 0 signifie qu'il est désactivé.

Ensuite, regardons le fichier ftrace_dump_on_oops. Ce fichier contrôle si le tampon ftrace est affiché sur la console lorsqu'un "oops" du noyau (une erreur du noyau) se produit.

Tapez la commande suivante et appuyez sur Entrée :

cat /proc/sys/kernel/ftrace_dump_on_oops

La sortie sera probablement :

1

Une valeur de 1 signifie que le tampon ftrace sera affiché en cas d'erreur du noyau, ce qui peut être utile pour le débogage.

Enfin, vérifions le fichier ftrace_filter_notrace_regex. Ce fichier contient une expression régulière qui peut être utilisée pour filtrer les fonctions qui ne sont pas suivies lors de l'utilisation du suivi de fonctions.

Tapez la commande suivante et appuyez sur Entrée :

cat /proc/sys/kernel/ftrace_filter_notrace_regex

La sortie peut être vide ou contenir une expression régulière, selon la configuration du système :

Ces fichiers dans /proc/sys/kernel donnent un aperçu de certains paramètres globaux de ftrace. Bien que la plupart des configurations détaillées et l'accès aux données se fassent via /sys/kernel/debug/tracing, ces fichiers offrent un moyen rapide de vérifier l'état global et certains comportements de base de ftrace.

Vous avez maintenant exploré les principales interfaces pour interagir avec ftrace : le système de fichiers de débogage et le répertoire /proc/sys/kernel.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, nous avons appris à vérifier si l'utilitaire ftrace du noyau est activé et accessible sur un système Linux. Nous avons commencé par explorer l'interface principale de ftrace située dans le système de fichiers de débogage à l'emplacement /sys/kernel/debug/tracing. En listant le contenu de ce répertoire à l'aide de la commande ls, nous avons vérifié la présence de fichiers et de répertoires liés à ftrace, ce qui indique que l'interface ftrace est disponible.

Cette première étape a confirmé l'exigence fondamentale pour utiliser ftrace : le système de fichiers de débogage doit être monté et le répertoire de tracing doit exister. La visualisation des différents fichiers de configuration et de contrôle de ftrace dans la sortie de ls /sys/kernel/debug/tracing a fourni une confirmation visuelle que l'infrastructure ftrace est présente et prête pour une interaction plus approfondie.