Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

065
557
421925


[질문] ftrace 설정: 'echo >' 와 'echo >>' 명령어의 차이점 Question_Announcement

Q) ftrace의 set_ftrace_filter 파일에 filter를 설정하는 아래 두 명령어의 차이점은 무엇일까요?

echo 함수 이름 > /sys/kernel/debug/tracing/set_ftrace_filter
echo 함수 이름 >> /sys/kernel/debug/tracing/set_ftrace_filter


A) 보통 다음과 같은 포멧으로 함수 이름을 set_ftrace_filter 파일에 설정합니다.

echo [함수 이름1] [함수 이름 2] > /sys/kernel/debug/tracing/set_ftrace_filter

다음은 kernel_thread() 함수와 schedule() 함수를 set_ftrace_filter에 설정하는 명령어입니다.

root@raspberrypi:/home/pi/work/1108-21# echo kernel_thread schedule > /sys/kernel/debug/tracing/set_ftrace_filter

이와 같이 설정한 후 'cat /sys/kernel/debug/tracing/set_ftrace_filter' 명령어를 입력해 set_ftrace_filter 파일의 내용을 확인해보겠습니다.

root@raspberrypi:/home/pi/work/1108-21# cat /sys/kernel/debug/tracing/set_ftrace_filter
kernel_thread
schedule

설정된 함수의 이름이 보입니다.

이번에는 'echo >>' 구문을 적용한 다음 명령어를 입력해 process_one_work 함수를 추가해 보겠습니다. 

root@raspberrypi:/home/pi/work/1108-21# echo process_one_work >> /sys/kernel/debug/tracing/set_ftrace_filter

이어서 'cat /sys/kernel/debug/tracing/set_ftrace_filter' 명령어를 입력해 set_ftrace_filter 파일의 내용을 확인해보겠습니다.

root@raspberrypi:/home/pi/work/1108-21# cat /sys/kernel/debug/tracing/set_ftrace_filter
kernel_thread
process_one_work
schedule

기존에 설정된 함수의 목록에 process_one_work 함수의 이름이 추가됐다는 사실을 알 수 있습니다.
'echo [함수 이름] >>' 형식으로 명령어를 입력하면 set_ftrace_filter에 함수의 이름을 추가합니다.

이번에는 'echo [함수 이름]  >' 구문을 사용해 set_ftrace_filter 파일을 지정해 볼까요?
 
root@raspberrypi:/home/pi/work/1108-21# echo __do_softirq > /sys/kernel/debug/tracing/set_ftrace_filter

이번에도 'cat /sys/kernel/debug/tracing/set_ftrace_filter' 명령어를 입력해 set_ftrace_filter 파일의 내용을 확인해보겠습니다.

root@raspberrypi:/home/pi/work/1108-21# cat /sys/kernel/debug/tracing/set_ftrace_filter
__do_softirq

__do_softirq 함수 이름 밖에 보이지 않습니다. 'echo [함수 이름]  >' 구문을 사용해 set_ftrace_filter 파일을 지정하면 다음과 같이 동작한다는 사실을 알 수 있습니다.

    * /sys/kernel/debug/tracing/set_ftrace_filter 파일을 새롭게 설정합니다.

만약에 기존에 설정된 set_ftrace_filter 파일에 함수를 추가하려면 'echo [함수 이름]  >>' 구문을 사용해 set_ftrace_filter 파일을 지정하면 됩니다.

echo __do_softirq >> /sys/kernel/debug/tracing/set_ftrace_filter


덧글

댓글 입력 영역