B.2. Tracepoints
The tracepoints can be found under the
/sys/kernel/debug/tracing/
directory assuming that debugfs
is mounted in the standard place at the /sys/kernel/debug
directory. The events
subdirectory contains all the tracing events that may be specified and, provided the gfs2
module is loaded, there will be a gfs2
subdirectory containing further subdirectories, one for each GFS2 event. The contents of the /sys/kernel/debug/tracing/events/gfs2
directory should look roughly like the following:
[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
To enable all the GFS2 tracepoints, enter the following command:
[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable
To enable a specific tracepoint, there is an
enable
file in each of the individual event subdirectories. The same is true of the filter
file which can be used to set an event filter for each event or set of events. The meaning of the individual events is explained in more detail below.
The output from the tracepoints is available in ASCII or binary format. This appendix does not currently cover the binary interface. The ASCII interface is available in two ways. To list the current content of the ring buffer, you can enter the following command:
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
This interface is useful in cases where you are using a long-running process for a certain period of time and, after some event, want to look back at the latest captured information in the buffer. An alternative interface,
/sys/kernel/debug/tracing/trace_pipe
, can be used when all the output is required. Events are read from this file as they occur; there is no historical information available through this interface. The format of the output is the same from both interfaces and is described for each of the GFS2 events in the later sections of this appendix.
A utility called
trace-cmd
is available for reading tracepoint data. For more information on this utility, see the link in 第 B.10 节 “References”. The trace-cmd
utility can be used in a similar way to the strace
utility, for example to run a command while gathering trace data from various sources.