ARM Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

202239
1625
172599


태그 : ftrace 요약보기전체보기목록닫기

1 2 3

[리눅스커널][ftrace] 커널 타이머: jiffies와 Soft IRQ 타이머 서비스 처리 횟수 확인

Overviewftrace는 리눅스 커널의 마법과 같은 도구입니다. 그래픽 효과가 없는 텍스트 포멧의 리눅스의 단점을 대체하기 충분하다고 봅니다. 이번에는 동적 타이머와 Soft IRQ 타이머 서비스를 동시에 ftrace 로그를 통해 분석해 보겠습니다. 이 디버깅은 라즈베리 파이에서 수행했다는 사실을 참고합시다.결론먼저, 요점부터 말하겠습니다....

[리눅스커널] 커널 디버깅과 코드 학습: 부팅 과정에서 ftrace는 어떻게 볼까?

ftrace는 기본으로 부팅 후 ftrace 로그를 저장하지 않습니다. 부팅 후 ftrace는 비활성화되는 것입니다. 따라서 부팅이 끝난 후 다음 같은 echo 명령어로 설정해야 ftrace 로그를 킬 수 있습니다.echo 1 > /sys/kernel/debug/tracing/tracing_on그런데 가끔 부팅 도중 ftrace 로그를 보고 싶을 ...

[리눅스커널] 커널 디버깅과 코드 학습: ftrace 로그는 어떻게 추출할까?

이어서 ftrace 로그를 라즈베리 파이에서 추출하는 방법을 소개합니다.다음은 ftrace 로그를 라즈비안 시스템에서 안전하게 추출하기 위한 셸 스크립트 코드입니다.#!/bin/bashecho 0 > /sys/kernel/debug/tracing/tracing_onecho "ftrace off"sleep 3cp /sys/kernel/debug/tr...

[리눅스커널] 커널 디버깅과 코드 학습: ftrace 는 커널 코드 분석의 안내자

ftrace 메시지는 텍스트 포멧입니다. 그래서 많은 분들이 해석하기 어렵다고 불평합니다.하지만 ftrace 메시지는 바로 커널 코드 분석의 안내자일 수 있습니다. ftrace 이벤트 이름으로 어느 커널 소스 코드에서 이벤트를 출력하는지 알 수 있기 때문입니다.실제 각 이벤트 별 ftrace를 출력하는 함수 이름은 다음 기준과 같습니다.trace_ftr...

[리눅스커널] 커널 디버깅과 코드 학습: ftrace는 어떻게 설정할까?

ftrace에서 제공하는 nop, function, graph_function 트레이서를 쓰려면 ftrace 관련 코드가 커널 이미지에 포함돼야 합니다. 즉, ftrace 코드가 추가된 커널 소스를 빌드해야 합니다. 이를 위해 다음과 같이 커널 설정 컨피그(configuration)를 활성화합니다. CONFIG_FTRACE=yCONFI...

[리눅스커널] 커널 디버깅과 코드 학습: ftrace란

printk와 dump_stack을 활용해 커널 디버깅을 하던 리눅스 커널 개발자들은 여러 불편함을 느끼기 시작했습니다. 즉, 다음과 같은 요건을 충족하는 커널 디버깅 기능이 있으면 좋겠다고 생각하게 됩니다. 함수 호출 흐름을 소스코드를 수정하지 않고도 보고 싶다. 커널 세부 실행 정보를 출력해 줬으면 좋겠다. 1초에 수십 번 호출해도 성능에 부담...

[리눅스커널][디버깅] ftrace: ftrace를 비활성화하기

보통 프로덕션 빌드로 이미지를 생성하려고 할 때 커널에서 ftrace를 아예 꺼버리고 싶을 때가 있다. 이 때 다음 패치를 적용해보자.diff --git a/kernel/trace/trace.c b/kernel/trace/trace.cindex 40817e4..2cf0d86 100644--- a/kernel/trace/trace.c+++ b/k...

[리눅스커널] 스케줄링/디버깅: ftrace: 스케줄링 실행 시 콜스택 파악하기 - p

sched_switch와 sched_wakeup 이벤트는 각각 프로세스 스케줄링과 프로세스를 깨우는 동작을 트레이싱합니다. 이번에는 스케줄링이 실행할 때 콜스택을 점검해 보겠습니다.커널에선 2가지 타입 스케줄링을 지원합니다.  [그림 10.48] 2가지 스케줄링 종류과 동작 방식스케줄링 종류 별로 어떤 콜스택인지 점검합시다. 먼저 ftrace...

[리눅스커널] 스케줄링: 스케줄링/디버깅: ftrace: sched_switch와 sched_wakeup 이벤트 소개 - p

리눅스 커널 ftrace 에서 sched_switch와 sched_wakeup 이벤트를 지원합니다. 각각 이벤트에 대해 소개하고 메시지를 분석하는 방법을 살펴보겠습니다.리눅스 커널의 프로세스 동작을 처음 접하는 분들이 겪는 어려움이 있습니다. 실제 리눅스 시스템에서 얼마나 자주 프로세스가 스케줄링 되는지 확인할 수 없다는 것입니다. 그 이유는 간단합니다...

[리눅스커널] 메모리관리/디버깅: ftrace로 메모리 할당 해제 확인하기

ftrace에서 지원하는 kmalloc와 kfree 이벤트를 사용하면 kmalloc()와 kfree() 함수를 호출할 때 세부 정보를 알 수 있습니다. kmalloc 이벤트: kmalloc() 함수로 메모리 할당을 요청했을때 동작  kfree 이벤트: 할당한 메모리를 해제했하는 동작 kmalloc와 kfree 이벤트 소개하기그러면 ...
1 2 3