8.2. Tracepoints
Los tracepoints se encuentran en el directorio /sys/kernel/debug/tracing/
suponiendo que debugfs
esté montado en el lugar estándar del directorio /sys/kernel/debug
. El subdirectorio events
contiene todos los eventos de rastreo que se pueden especificar y, siempre que se cargue el módulo gfs2
, habrá un subdirectorio gfs2
que contiene otros subdirectorios, uno para cada evento GFS2. El contenido del directorio /sys/kernel/debug/tracing/events/gfs2
debería ser más o menos el siguiente:
[root@chywoon gfs2]# ls
enable gfs2_bmap gfs2_glock_queue gfs2_log_flush
filter gfs2_demote_rq gfs2_glock_state_change gfs2_pin
gfs2_block_alloc gfs2_glock_put gfs2_log_blocks gfs2_promote
Para activar todos los tracepoints GFS2, introduzca el siguiente comando:
[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable
Para habilitar un tracepoint específico, hay un archivo enable
en cada uno de los subdirectorios de eventos individuales. Lo mismo ocurre con el archivo filter
, que puede utilizarse para establecer un filtro de eventos para cada evento o conjunto de eventos. El significado de los eventos individuales se explica con más detalle a continuación.
La salida de los tracepoints está disponible en formato ASCII o binario. Este apéndice no cubre actualmente la interfaz binaria. La interfaz ASCII está disponible de dos maneras. Para listar el contenido actual del buffer del anillo, puede introducir el siguiente comando:
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
Esta interfaz es útil en los casos en los que se utiliza un proceso de larga duración durante un cierto período de tiempo y, después de algún evento, se desea consultar la última información capturada en el buffer. Una interfaz alternativa, /sys/kernel/debug/tracing/trace_pipe
, se puede utilizar cuando se requiere toda la salida. Los eventos se leen de este archivo a medida que ocurren; no hay información histórica disponible a través de esta interfaz. El formato de la salida es el mismo desde ambas interfaces y se describe para cada uno de los eventos de GFS2 en las secciones posteriores de este apéndice.
Existe una utilidad llamada trace-cmd
para leer los datos de los tracepoints. Para más información sobre esta utilidad, consulte el enlace en Sección 8.10, “Referencias”. La utilidad trace-cmd
puede utilizarse de forma similar a la utilidad strace
, por ejemplo para ejecutar un comando mientras se recopilan datos de trazas de varias fuentes.