8.2. Tracepoints
Os tracepoints podem ser encontrados sob o diretório /sys/kernel/debug/tracing/
assumindo que debugfs
esteja montado no local padrão no diretório /sys/kernel/debug
. O subdiretório events
contém todos os eventos de rastreamento que podem ser especificados e, desde que o módulo gfs2
seja carregado, haverá um subdiretório gfs2
contendo outros subdiretórios, um para cada evento GFS2. O conteúdo do diretório /sys/kernel/debug/tracing/events/gfs2
deve se parecer mais ou menos com o seguinte:
[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 habilitar todos os tracepoints GFS2, digite o seguinte comando:
[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable
Para permitir um traço específico, há um arquivo enable
em cada um dos subdiretórios de eventos individuais. O mesmo se aplica ao arquivo filter
que pode ser usado para definir um filtro de eventos para cada evento ou conjunto de eventos. O significado dos eventos individuais é explicado com mais detalhes abaixo.
A saída dos tracepoints está disponível em ASCII ou em formato binário. Este apêndice não cobre atualmente a interface binária. A interface ASCII está disponível de duas maneiras. Para listar o conteúdo atual do buffer de anéis, você pode digitar o seguinte comando:
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
Esta interface é útil nos casos em que você está usando um processo de longa duração por um determinado período de tempo e, após algum evento, quer olhar para trás para as últimas informações capturadas no buffer. Uma interface alternativa, /sys/kernel/debug/tracing/trace_pipe
, pode ser usada quando toda a saída for necessária. Os eventos são lidos a partir deste arquivo à medida que ocorrem; não há informações históricas disponíveis através desta interface. O formato da saída é o mesmo de ambas as interfaces e é descrito para cada um dos eventos GFS2 nas últimas seções deste apêndice.
Um utilitário chamado trace-cmd
está disponível para a leitura de dados de tracepoint. Para maiores informações sobre este utilitário, veja o link em Seção 8.10, “Referências”. O utilitário trace-cmd
pode ser usado de forma similar ao utilitário strace
, por exemplo, para executar um comando durante a coleta de dados de rastreamento de várias fontes.