Introducción
En este laboratorio, exploraremos cómo determinar si la potente utilidad de seguimiento del kernel de Linux, ftrace, está habilitada y accesible en su sistema. Comenzaremos examinando el directorio /sys/kernel/debug/tracing, que sirve como la interfaz principal para interactuar con ftrace.
Después de la comprobación inicial, utilizaremos la herramienta trace-cmd para verificar aún más la funcionalidad de ftrace y listar las opciones de seguimiento disponibles. Finalmente, inspeccionaremos los parámetros de configuración relevantes dentro del sistema de archivos /proc/sys/kernel para obtener una comprensión más profunda de la configuración de ftrace.
Comprobar el estado de ftrace con ls /sys/kernel/debug/tracing
En este paso, comenzaremos a explorar ftrace, una potente utilidad de seguimiento integrada en el kernel de Linux. ftrace permite a los desarrolladores y administradores de sistemas entender el comportamiento en tiempo de ejecución del kernel.
La interfaz principal para interactuar con ftrace es a través del sistema de archivos de depuración, específicamente ubicado en /sys/kernel/debug/tracing.
Primero, verifiquemos si el sistema de archivos de depuración está montado y si el directorio tracing existe. Podemos usar el comando ls para listar el contenido de este directorio.
Escriba el siguiente comando en su terminal y presione Enter:
ls /sys/kernel/debug/tracing
Debería ver una lista de archivos y directorios relacionados con ftrace. La salida exacta puede variar dependiendo de la versión y configuración del kernel, pero debería verse algo así:
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 ve una salida similar, significa que la interfaz de ftrace está disponible en su sistema. Si recibe un error como "No such file or directory" (No existe tal archivo o directorio), podría indicar que el sistema de archivos de depuración no está montado o que ftrace no está habilitado en el kernel. Sin embargo, en el entorno de LabEx, debería estar disponible.
Este directorio contiene varios archivos que controlan el comportamiento de ftrace y proporcionan datos de seguimiento. Exploraremos algunos de estos archivos en pasos posteriores.
Por ahora, simplemente verificar la existencia de este directorio y su contenido confirma que puede interactuar con ftrace.
Haga clic en Continuar para pasar al siguiente paso.
Verificar ftrace con trace-cmd list
En el paso anterior, confirmamos la presencia de la interfaz de ftrace en el sistema de archivos de depuración. Ahora, usemos una herramienta de línea de comandos llamada trace-cmd para interactuar con ftrace. trace-cmd es una utilidad de espacio de usuario que simplifica el proceso de configuración y recopilación de datos de ftrace.
Una de las funciones útiles de trace-cmd es listar los eventos de seguimiento y los tracers (rastreadores) disponibles. Esto nos ayuda a entender qué podemos monitorear con ftrace.
Usemos trace-cmd list para ver los tracers disponibles. Los tracers son diferentes modos de operación para ftrace, que te permiten rastrear diferentes aspectos del kernel.
Escribe el siguiente comando en tu terminal y presiona Enter:
trace-cmd list -t
La opción -t le dice a trace-cmd que liste los tracers disponibles. Deberías ver una salida similar a esta:
List of available tracers:
blk
function
function_graph
irqsoff
nop
preemptirqsoff
wakeup
wakeup_rt
Esta salida muestra los diferentes tracers disponibles en este sistema. Por ejemplo, function rastrea las llamadas a funciones, y function_graph rastrea las llamadas a funciones y su gráfico de llamadas.
A continuación, listemos los eventos disponibles que se pueden rastrear. Los eventos son puntos específicos en el kernel donde se pueden recopilar información de seguimiento.
Escribe el siguiente comando y presiona Enter:
trace-cmd list -e
La opción -e le dice a trace-cmd que liste los eventos disponibles. Este comando producirá una larga lista de eventos, categorizados por subsistemas (por ejemplo, sched, syscalls, ext4). La salida se verá algo así (solo se muestra una pequeña parte):
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)
Puedes desplazarte por la salida para ver la gran cantidad de eventos disponibles para el seguimiento. Esto demuestra la visibilidad detallada que ftrace proporciona sobre las operaciones del kernel.
Usar trace-cmd list es una buena manera de obtener una visión general de lo que ftrace puede monitorear en tu sistema específico.
Haz clic en Continuar para continuar.
Inspeccionar la configuración de ftrace en /proc/sys/kernel
Además de la interfaz del sistema de archivos de depuración en /sys/kernel/debug/tracing, algunas configuraciones relacionadas con ftrace también se pueden encontrar en el directorio /proc/sys/kernel. El sistema de archivos /proc es un sistema de archivos virtual que proporciona información sobre procesos y otra información del sistema. El directorio /proc/sys contiene archivos que te permiten ver y modificar parámetros del kernel en tiempo de ejecución.
Inspeccionemos algunos archivos en /proc/sys/kernel que están relacionados con ftrace. Podemos usar el comando cat para ver el contenido de estos archivos.
Primero, veamos el archivo ftrace_enabled. Este archivo indica si ftrace está actualmente habilitado en el kernel.
Escribe el siguiente comando en tu terminal y presiona Enter:
cat /proc/sys/kernel/ftrace_enabled
Deberías ver una salida como esta:
1
Un valor de 1 significa que ftrace está habilitado, y 0 significa que está deshabilitado.
A continuación, veamos el archivo ftrace_dump_on_oops. Este archivo controla si el buffer de ftrace se imprime en la consola cuando ocurre un "kernel oops" (un error del kernel).
Escribe el siguiente comando y presiona Enter:
cat /proc/sys/kernel/ftrace_dump_on_oops
La salida probablemente será:
1
Un valor de 1 significa que el buffer de ftrace se imprimirá en caso de un "kernel oops", lo cual puede ser útil para la depuración.
Finalmente, veamos el archivo ftrace_filter_notrace_regex. Este archivo contiene una expresión regular que se puede utilizar para filtrar qué funciones no se rastrean cuando se utiliza el seguimiento de funciones.
Escribe el siguiente comando y presiona Enter:
cat /proc/sys/kernel/ftrace_filter_notrace_regex
La salida puede estar vacía o contener una expresión regular, dependiendo de la configuración del sistema:
Estos archivos en /proc/sys/kernel brindan una idea de algunas configuraciones globales de ftrace. Si bien la mayoría de la configuración detallada y el acceso a los datos se realizan a través de /sys/kernel/debug/tracing, estos archivos ofrecen una forma rápida de verificar el estado general y algunos comportamientos básicos de ftrace.
Ahora has explorado las principales interfaces para interactuar con ftrace: el sistema de archivos de depuración y el directorio /proc/sys/kernel.
Haz clic en Continuar para completar este laboratorio.
Resumen
En este laboratorio, aprendimos cómo verificar si la utilidad ftrace del kernel está habilitada y es accesible en un sistema Linux. Comenzamos explorando la interfaz principal de ftrace ubicada en el sistema de archivos de depuración en /sys/kernel/debug/tracing. Al listar el contenido de este directorio utilizando el comando ls, verificamos la presencia de archivos y directorios relacionados con ftrace, lo que indica que la interfaz de ftrace está disponible.
Este primer paso confirmó el requisito fundamental para utilizar ftrace: el sistema de archivos de depuración debe estar montado y el directorio de seguimiento debe existir. Ver los diversos archivos de configuración y control de ftrace en la salida de ls /sys/kernel/debug/tracing proporcionó una confirmación visual de que la infraestructura de ftrace está presente y lista para una interacción adicional.



