트레이스

ftrace
트레이스
개발자스티븐 로스테트 외
초기 릴리즈2008년 10월 9일, 13년 전(2008년 10월 9일)
운영 체제리눅스
유형커널 확장
면허증.GNU GPL 버전[1] 2
웹 사이트www.kernel.org/doc/Documentation/trace

ftrace(기능 트레이서)는 Linux 커널용 트레이스 프레임워크입니다.Function Tracer라는 원래 이름은 커널 실행 중에 수행된 다양한 함수 호출과 관련된 정보를 기록하는 ftrace의 기능에서 유래했지만, ftrace의 추적 기능은 커널의 내부 작업을 [2][3]훨씬 더 광범위하게 커버합니다.

세부 사항

다양한 트레이서 플러그인을 사용하면 이벤트 스케줄링, 인터럽트, 메모리 매핑 I/O, CPU 전원 상태 전환, 파일 시스템 및 가상화 관련 작업 등 다양한 정적 트레이스 포인트를 대상으로 할 수 있습니다.또, 커널 함수 콜의 동적 트래킹을 사용할 수 있습니다.옵션으로 globs를 사용하여 기능의 서브셋으로 제한할 수 있으며, 콜 그래프를 생성하여 스택 사용 상황 보고서를 제공할 수도 있습니다.동시에 ftrace를 사용하여 인터럽트나 프리엠프션이 [2][4][5]: 3–11, 14, 18 비활성화되어 있는 기간 등 Linux 커널 내의 다양한 지연을 측정할 수 있습니다.

ftrace 대응 Linux 커널은 다음 기능을 활성화하여 구축됩니다. CONFIG_FUNTION_TRACERkernel 구성 옵션.ftrace와의 모든 런타임 상호작용은 특별히 마운트된 debugfs 파일 시스템에 포함된 읽기 및 쓰기 가능한 가상 파일을 통해 수행됩니다.그 결과, ftrace에서는 특별한 사용자 공간 유틸리티가 [2][3][6]필요하지 않습니다.그러나 데이터 기록, 분석 및 시각화를 위한 고급 기능을 제공하는 추가 사용자 공간 유틸리티가 있습니다. 이러한 유틸리티의 예로는 trace-cmd[2][5]: 31–47 [7][8]KernelShark가 있습니다.

내부적으로 ftrace는 gcc프로파일링 메커니즘에 의존하여 모든 소스 레벨 커널 함수의 컴파일된 버전에 머신 명령어를 추가합니다.이러한 명령어는 실제 트레이스를 실행하는 ftrace의 트램펄린과 트레이서 플러그인으로 기능 실행을 수정합니다.gcc에 의해 작성된 이러한 "엔트리 포인트" 명령은 커널이 부팅될 때 ftrace에 의해 변경되며, 실행 [9][10]시 설정된 트레이스 유형과 옵션에 따라 NOP 간의 ftrace 및 트레이스 트램펄린으로의 실제 점프에 의해 나중에 변경됩니다.

ftrace는 주로 Steven Rostedt에 의해 개발되었으며 2008년 [11]10월 9일에 출시된 커널 버전 2.6.27에서 Linux 커널 메인라인에 통합되었습니다.

「 」를 참조해 주세요.

  • DTrace – 원래 Solaris용으로 개발된 커널과 응용 프로그램의 문제를 트러블 슈팅하기 위한 트레이스 프레임워크
  • ktrace – 커널과 프로그램의 상호작용을 추적하는 BSD Unix 및 Mac OS X 유틸리티
  • ltrace: Linux 디버깅 유틸리티.사용자랜드 어플리케이션이 공유 라이브러리에 발신한 콜을 표시합니다.
  • strace – Linux 및 기타 Unix 계열 시스템용 디버깅 유틸리티로 프로그램에서 사용되는 시스템콜과 수신된 모든 신호를 감시합니다.
  • SystemTap – Linux 시스템 계측에 사용되는 스크립트 언어 및 유틸리티

레퍼런스

  1. ^ "Linux kernel source: kernel/COPYING file". kernel.org. March 13, 1994. Retrieved June 11, 2016.
  2. ^ a b c d Jake Edge (March 13, 2009). "A look at ftrace". LWN.net. Retrieved July 23, 2014.
  3. ^ a b Steven Rostedt (June 16, 2014). "Linux kernel documentation: Documentation/trace/ftrace.txt". kernel.org. Retrieved July 23, 2014.
  4. ^ "Red Hat Enterprise MRG 2 documentation, Section 3.8. Using the ftrace utility for tracing latencies". Red Hat. May 23, 2014. Retrieved July 24, 2014.
  5. ^ a b Steven Rostedt (October 18, 2010). "Ftrace: Linux Kernel Tracing" (PDF). linuxfoundation.org. Archived from the original (PDF) on March 8, 2013. Retrieved July 23, 2014.
  6. ^ "Red Hat Enterprise Linux 6 documentation, Section 6.5. ftrace". Red Hat. March 14, 2014. Retrieved July 23, 2014.
  7. ^ Steven Rostedt (October 20, 2010). "trace-cmd: A front-end for Ftrace". LWN.net. Retrieved January 19, 2015.
  8. ^ Steven Rostedt (February 2, 2011). "Using KernelShark to analyze the real-time scheduler". LWN.net. Retrieved June 11, 2016.
  9. ^ Steven Rostedt (January 5, 2015). "Ftrace Kernel Hooks: More than just tracing" (PDF). linuxplumbersconf.org. pp. 6–12, 24, 34, 56–58. Retrieved June 11, 2016.
  10. ^ Tim Bird (November 1, 2012). "Measuring Function Duration with Ftrace" (PDF). elinux.org. pp. 5–6, 12–14. Retrieved June 11, 2016.
  11. ^ "Linux kernel 2.6.27, Section 1.7. ftrace, sysprof support". kernelnewbies.org. October 9, 2008. Retrieved July 23, 2014.

외부 링크