C.2. Tracepoints
Os tracepoints podem ser encontrados sob os diretórios
/sys/kernel/debug/tracing/
assumindo-se que debugfs
é montado em um 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 considerando-se que o módulo gfs2
esteja carregado, haverá um subdiretório gfs2
que contém subdiretórios futuros, um para cada evendo do GFS2. O conteúdo do diretório /sys/kernel/debug/tracing/events/gfs2
deve se parecer 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 ativar todos os tracepoints do GFS2, execute o seguinte comando:
[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable
Para habilitar um tracepoint específico, existe um arquivo
enable
em cada um dos subdiretórios de eventos individuais. O mesmo é verdadeiro para o arquivo filter
que pode ser utilizado para configurar um filtro de evento para cada evento ou conjunto de eventos. O significado dos eventos individuais é explicado em mais detalhes abaixo.
O resultado dos tracepoints está disponível em formato ASCII ou binário. Este apêndice não cobre a interface binária. A interface ASCII está disponível em duas formas. Para listar o conteúdo atual do buffer de anel, você pode executar o seguinte comando:
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
Esta interface é útil em casos que você estiver usando um processo de longa duração para um determinado período de tempo e, depois de algum evento, queira procurar pela última informação capturada no buffer. Uma interface alternativa,
/sys/kernel/debug/tracing/trace_pipe
, pode ser usado quando todo o resultado é necessário. Eventos são lidos a partir desse arquivo à medida que ocorrem, não há informações históricas disponíveis através desta interface. O formato de resultado é o mesmo de ambas as interfaces e é descrito para cada um dos GFS2 eventos nas seções deste apêndice.
O utilitário chamado
trace-cmd
está disponível para leitura de dados do tracepoint. Para mais informações sobre este utilitário, consulte o link em Seção C.10, “Referências”. O utilitário trace-cmd
pode ser utilizado de uma forma semelhante ao utilitário strace
, por exemplo, para executar um comando enquanto reune dados de rastreamento de diversas fontes.