ftrace를 완전히 사용하기 위한 configuration 활성화
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
먼저 아래의 명령어로 trace 가능한 함수 확인
cat /sys/kernel/debug/tracing/available_filter_functions
show_interrupt() 함수 정보를 얻기위해 아래 스크립트 사용
#!/bin/bash
# how to use
# filter_ftrace.sh function_name
echo 0 > /sys/kernel/debug/tracing/tracing_on
sleep 1
echo "tracing_off"
echo 0 > /sys/kernel/debug/tracing/events/enable
sleep 1
echo "events disabled"
echo secondary_start_kernel > /sys/kernel/debug/tracing/set_ftrace_filter
sleep 1
echo "set_ftrace_filter_init"
echo function > /sys/kernel/debug/tracing/current_tracer
sleep 1
echo "function tracer enabled"
echo $1 >> /sys/kernel/debug/tracing/set_ftrace_filter
sleep 1
echo "set_ftrace_filter enabled"
echo 1 > /sys/kernel/debug/tracing/options/func_stack_trace
echo 1 > /sys/kernel/debug/tracing/options/sym-offset
echo "function stack trace enabled"
echo 1 > /sys/kernel/debug/tracing/tracing_on
echo "tracing_on"
아래 명령어 입력
$ filter_ftrace.sh show_interrupt
ftrace 로그를 텍스트 파일로 변환
#!/bin/bash
echo 0 > /sys/kernel/debug/tracing/tracing_on
echo "ftrace off"
sleep 3
cat /sys/kernel/debug/tracing/trace > ./ftrace_log.txt
'Kernel > Practice' 카테고리의 다른 글
| misc device 例 (0) | 2024.09.21 |
|---|---|
| kwork 사용 例 (0) | 2024.02.02 |
| hrtimer 사용 例 (0) | 2024.02.02 |
| process 생성/종료 ftrace 얻기 (0) | 2024.02.02 |
| debugfs 생성 ( /sys/kernel/debug/) (0) | 2024.02.02 |