Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

230224
1178
109352


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

1 2 3 4 5 6 7 8 9 10 다음

[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...

[Linux-Kernel] LKML: qla2xxx: fix a potential NULL pointer dereference

출처https://patchwork.kernel.org/patch/11150763/https://lkml.org/lkml/2019/9/18/796//// 흥미로운 패치다.//diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.cindex 98e60a3..31714c9 1006...

[리눅스커널] 워크큐: 워커 스레드 핸들 worker_thread() 함수 분석하기 (1/2)

커널 스레드를 처음 분석하려고 할 때 다음과 같은 의문이 생길 때가 있습니다.    새로운 커널 스레드 코드 분석을 시작할 때 어느 코드부터 분석해야 할까?먼저 커널 스레드 핸들 함수를 열어봐야 합니다. 그 이유는 커널 스레드 세부 동작은 커널 스레드 핸들 함수에 구현됐기 때문입니다. 마찬가지로 워커 스레드 세부 동작을 알려면 먼저 ...

[리눅스커널] 워크큐: 워커 스레드를 생성하는 create_worker() 함수 분석하기

워커 스레드를 생성하려면 create_worker() 함수를 호출해야 합니다. 이번 시간에는 create_worker() 함수 코드를 분석하면서 워커 스레드를 생성하는 과정을 배워보겠습니다.먼저 create_worker() 함수가 하는 주요 동작은 다음과 같습니다. 워커풀 아이디 읽어오기 워커 스레드 이름을 지정해 워커 스레드 생성 요청하기 워커풀...

[리눅스커널] 워크큐: 워커 스레드는 누가 언제 만들까

이번 챕터 앞 부분에서 워크큐에 대해 다음과 같이 소개했습니다.     워크를 처리하는 워커 스레드를 미리 생성해 놓고 워크 실행 요청이 오면 해당 워커     스레드가 이를 처리한다.이번 시간에는 워커 스레드의 핸들인 워커를 언제 생성하는지 알아보겠습니다. 그렇다면 워커는 어느 함수를 실행할 때 ...

[리눅스커널] 워크큐: 워커 자료구조인 struct worker 구조체 알아보기

워커를 관리하고 저장하는 자료구조는 struct worker 구조체입니다. 이번 시간에는 struct worker 구조체 세부 필드를 분석하겠습니다. struct worker 구조체 분석하기다음은 struct worker 구조체 선언부입니다.[https://elixir.bootlin.com/linux/v4.19.30/source/kernel/w...

[리눅스커널] 워크큐: 워커와 워커 스레드란

커널에서 워크큐 관련 함수를 호출하고 워크큐 자료 구조를 관리합니다. 이를 위해 생성된 프로세스가 워커 스레드이며 워커란 자료구조로 세부 동작을 관리합니다.이번 시간에서는 워커와 워커 스레드가 무엇인지 먼저 알아보겠습니다.라즈베리파이에서 워커 스레드 확인하기워커 스레드는 모든 리눅스 시스템에서 배경으로 실행하는 프로세스입니다. 물론 라즈베리파이도 워커 ...

[리눅스커널] 워크큐(workqueue): __queue_work() 함수 분석하기

워크를 워크큐에 큐잉하는 핵심 동작은 __queue_work() 함수에서 수행합니다. 코드 분석을 통해 워크를 워크큐에 어떤 방식으로 큐잉하는지 살펴보겠습니다.코드 분석에 앞서 __queue_work() 함수 선언부와 인자를 점검합시다.static void __queue_work(int cpu, struct workqueue_struct *wq, ...

[리눅스커널] 워크큐(workqueue): 워크를 워크큐에 큐잉하는 인터페이스 함수 분석하기

커널은 디바이스 드라이버 레벨에서 워크큐를 큐잉할 수 있는 여러 가지 함수를 지원합니다.이번 시간에는 워크를 워크큐에 큐잉할 때 사용하는 함수를 소개하고 코드를 분석합니다.  schedule_work() queue_work() queue_work_on()먼저 schedule_work() 함수를 분석해볼까요?schedule_work() 함수...

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

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