9.2. tracepoints
tracepoints는 /sys/kernel/debug/debug
디렉토리의 표준 위치에 debugfs
가 마운트되었다고 가정하고 /sys/kernel/debug
/ 디렉토리에서 찾을 수 있습니다. events
하위 디렉터리에는 지정할 수 있는 모든 추적 이벤트가 포함되어 있으며 gfs2
모듈이 로드되면 각 GFS2 이벤트에 대해 gfs2
하위 디렉터리가 포함된 gfs2 하위 디렉터리가 있습니다. /sys/kernel/debug/tracing/gfs2
디렉터리의 내용은 다음과 유사합니다.
[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
모든 GFS2 추적 지점을 활성화하려면 다음 명령을 입력합니다.
[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable
특정 추적 지점을 활성화하기 위해 개별 이벤트 하위 디렉터리에는 enable
파일이 있습니다. 동일한 필터
파일에서 각 이벤트 또는 이벤트 세트에 대한 이벤트 필터를 설정하는 데 사용할 수 있습니다. 개별 이벤트의 의미는 아래에서 자세히 설명합니다.
추적 지점의 출력은 ASCII 또는 바이너리 형식으로 사용할 수 있습니다. 이 부록은 현재 바이너리 인터페이스를 다루지 않습니다. ASCII 인터페이스는 두 가지 방법으로 사용할 수 있습니다. 링 버퍼의 현재 콘텐츠를 나열하려면 다음 명령을 입력합니다.
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
이 인터페이스는 일정 기간 동안 장기 실행 프로세스를 사용하고 일부 이벤트 후 버퍼에서 최신 캡처된 정보를 다시 확인하려는 경우에 유용합니다. 대체 인터페이스 /sys/kernel/debug/tracing/trace_pipe
는 모든 출력이 필요할 때 사용할 수 있습니다. 이벤트가 발생하면 이 파일에서 읽습니다. 이 인터페이스를 통해 사용 가능한 기록 정보는 없습니다. 출력 형식은 두 인터페이스에서 모두 동일하며 이 부록의 이후 섹션에 있는 각 GFS2 이벤트에 대해 설명되어 있습니다.
trace-cmd
라는 유틸리티는 tracepoint 데이터를 읽는 데 사용할 수 있습니다. 이 유틸리티에 대한 자세한 내용은 http://lwn.net/Articles/341902/ 을 참조하십시오. trace-cmd
유틸리티를 사용하면 strace
유틸리티와 유사한 방식으로 사용할 수 있습니다. 예를 들어 다양한 소스에서 추적 데이터를 수집하는 동안 명령을 실행할 수 있습니다.