리눅스커널

포스트: 154|조회수: 0|TERM
Items

Posts

154 posts

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

Guillermo Austin Kim|2019년 9월 30일

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

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

Guillermo Austin Kim|2019년 9월 29일

출처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 100644--- a/drivers/scsi/qla2xxx/qla_os.c+++ b/drivers/scsi/qla2xxx/qla_os.c@@ -3232,6 +3232,10 @@ static void qla2x00_iocb_work_fn(struct work_struct *work) req->req_q_in, req->req_q_out, r

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

Guillermo Austin Kim|2019년 9월 29일

커널 스레드를 처음 분석하려고 할 때 다음과 같은 의문이 생길 때가 있습니다.  새로운 커널 스레드 코드 분석을 시작할 때 어느 코드부터 분석해야 할까? 먼저 커널 스레드 핸들 함수를 열어봐야 합니다. 그 이유는 커널 스레드 세부 동작은 커널 스레드 핸들 함수에 구현됐기 때문입니다. 마찬가지로 워커 스레드 세부 동작을 알려면 먼저 스레드 핸들 함수인 worker_thread() 함수를 봐야 합니다. 이번 시간에는 worker_thread() 함수를 분석하면서 세부 동작 원리를 배워보겠습니다. 먼저 worker_thread() 함수의 주요 동작은 다음과 같습니다. 워크 실행필요 시 워커 스레드 생성 요청워커 스레드 종료 위 항목 중 핵심 동작은 워크를 실행하는 것이며 나머지는 워커를

[리눅스커널] 워크큐: create_worker() 함수에서 호출한 워크큐 커널 함수 분석하기

Guillermo Austin Kim|2019년 9월 26일

이번 시간에는 create_worker() 함수에서 호출한 워커 스레드 세부 제어 함수를 살펴보겠습니다. worker_attach_to_pool() 함수 분석하기 worker_attach_pool() 함수는 워커를 워커풀에 연결하는 역할을 수행합니다. [https://elixir.bootlin.com/linux/v4.19.30/source/kernel/workqueue.c] 01 static void worker_attach_to_pool(struct worker *worker,02 struct worker_pool *pool)03 {04mutex_lock(&pool->attach_mutex);0506set_cpus_allowed_ptr(worker->task, pool-