Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

5363
1898
209234


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

1 2 3 4 5

[리눅스커널] 슬럽 메모리: set_track() 함수에 전달되는 addr인자의 정체

리눅스 커널의 슬럽 관련 디버깅 피쳐를 켜 놓으면, struct track 구조체로 슬럽 오브젝트를 할당하거나 해제할 때의 콜 스택 정보를 저장합니다. 이를 처리하는 핵심 함수는 set_track() 함수인데, 이 함수에 마지막으로 전달되는 인자는 addr입니다.다음은 set_track() 함수의 구현부인데, 볼드체로 표기된 부분을 봅시다.https:/...

[리눅스커널] 프로세스 스케줄링: struct task_struct의 어느 필드가 컨텍스트 스위칭 횟수를 저장할까?

블로그 방문자께서 댓글로 다음과 같은 질문을 주셨습니다.    * 한 프로세스가 context switching(cpu burst)이 일어난 횟수는 task_struct 구조체에서 어떤 변수로 확인할 수 있나요?이 질문에 답을 드리면;    * task_struct 구조체의 nivcsw 필드가 컨텍스트 스위칭을 한 횟...

[리눅스커널] 프로세스 별로 파일 디스크립터(파일 객체)는 어떻게 관리하나?

아래 포스팅을 읽은 방문자님께서 댓글로 남겨 주신 질문에 대답하려고 합니다.http://rousalome.egloos.com/9993265  [리눅스커널][가상파일시스템] 파일 객체: write 연산 세부 동작 분석질문서로 다른 프로세스에서 f1파일을 열었으니 fd가 가르키는 시스템 파일 테이블의 파일이 다를텐데어떻게 내용이 삭제되거나 섞이지도...

[리눅스커널] GCC 지시어

[부록-A] GCC 지시어리눅스 커널 코드를 읽다 보면 낯선 구문을 만날 가능성이 높습니다. 이 중 하나가 GCC 컴파일러 지시어입니다. 이번 시간에는 리눅스 커널에서 자주 쓰는 GCC 지시어를 소개합니다.1. __init과 __section()__init 키워드가 함수 선언부에 있으면 해당 함수는 init.text 섹션에 위치합니다. 이해를 돕기 위해...

[리눅스커널] 커널 동적 타이머를 사용해 실행 시각을 측정해보기

이번에는 조금 더 재미있는 패치 코드를 같이 볼까요? 다음은 패치 코드의 내용입니다.diff --git a/kernel/workqueue.c b/kernel/workqueue.cindex cd8b61b..128c998 100644--- a/kernel/workqueue.c+++ b/kernel/workqueue.c@@ -49,7 +49,7 @@ ...

[LinuxKernel] What is critical section and race condition?

Kernel synchronization is a technique for designing or maintaining code that behaves as follows:1. Only one process is accessed when executing a function or a specific code segment.2. Run the code i...

[Crash-Utility] Radix Tree 디버깅: 'tree -t radix -N (struct radix_tree_node *) 구조체 주소'

이번 시간에는 크래시 유틸리티로 라덱스 트리를 디버깅하는 방법을 소개합니다.라딕스 트리(Radix Tree)를 보기 위한 명령어크래시 유틸리티로 라덱스 트리 노드를 보기 위한 명령어 포멧은 다음과 같습니다.tree -t radix -N (struct radix_tree_node *) 구조체 주소예제 명령어 및 결과 ( struct radix_tree_n...

[리눅스커널] 가상파일시스템/파일객체: 파일 객체 함수 오퍼레이션

가상 파일시스템에서 파일 시스템 별로 파일을 열고 쓰고 읽는 함수 포인터 테이블을 지원합니다. 이 정보를 파일 함수 오퍼레이션이라고 하며 다음 해더 파일에 정의돼 있습니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/include/linux/fs.h]struct file_operations { stru...

[리눅스커널] 가상파일시스템/소개: 함수 오퍼레이션이란 무엇인가

이번 절에서 소개했듯이, 각각 파일 시스템에 액세스를 하기 위해서 먼저 가상 파일시스템에 접근합니다. 이 때 가상 파일 시스템에서 지원하는 4가지 객체에서 지정한 함수 포인터를 통해 파일 시스템 세부 함수에 접근합니다.      4개 객체별로 지정한 함수 포인터 연산을 함수 오퍼레이션이라고 말합니다.  &n...

[리눅스커널] 메모리관리/디버깅: kmalloc() 함수로 메모리 할당 후 슬랩 캐시 종류 확인하기

1 2 3 4 5