커널 개발자들은 다음과 같은 요건을 충족하는 커널 디버깅 기능이 있으면 좋겠다고 생각하게 됩니다.
ftrace에서 제공하는 nop
, function
, function_graph
트레이서를 쓰려면 ftrace 관련 코드가 커널 이미지에 포함돼야 합니다.
즉, ftrace 코드가 추가된 커널 소스를 빌드해야 합니다.
CONFIG_FTRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_STACK_TRACER=y
CONFIG_TRACER_SNAPSHOT=y
위의 커널 설정 컨피그를 활성화해야 합니다.
ftrace 설정 파일은 /sys/kernel/debug/tracing
에서 확인할 수 있습니다.
ftrace를 활성화/비활성화하려면 tracing_on
파일을 설정해야 합니다.
tracing_on
은 부팅 후 기본적으로 0으로 설정돼 있습니다.
echo 0 > /sys/kernel/debug/tracing/tracing_on
tracing_on
파일에 0을 저장합니다.
ftrace를 비활성화 하는 동작입니다.
echo 1 > /sys/kernel/debug/tracing/tracing_on
tracing_on
파일에 1을 저장합니다.
ftrace를 활성화 하는 동작입니다.
tracer 목록은 /sys/kernel/debug/tracing/available_tracers
에서 확인 가능합니다.