리눅스커널
Posts
154 posts[리눅스커널] 프로세스: 유저 프로세스의 스레드 그룹 디버깅해보기
커널에서 실행 중인 프로세스는 커널 스레드인 커널 프로세스와 유저 프로세스로 구분할 수 있습니다.그런데 유저 공간에서 생성된 프로세스는 스레드 그룹의 리더 프로세스와 스레드 그룹에 속한 스레드로 분류할 수 있는데요. 이번 시간에는 프로세스의 태스크 디스크립터를 리뷰하면서 이 내용을 확인하겠습니다. 다음은 대부분 리눅스 시스템에서 확인할 수 있는 "swapper/1" 프로세스의 태스크 디스크립터입니다. (struct task_struct *) [-] (struct task_struct*)0xf0a1e900 = 0xF0A1E900 -> ( (long int) [D:0xF0A1E900] state = 0x0, (void *) [D:0xF0A1E904] stack = 0xF0A52000,
![[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드의 전체 실행 흐름 정리](https://img.zoomtrend.com/2020/04/25/a0386257_5ea4bb44cd025.png)
[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드의 전체 실행 흐름 정리
지금까지 IRQ 스레드 핸들인 irq_thread() 함수에서 irq_thread_fn() 함수를 호출해 IRQ 스레드 핸들러 함수를 호출하는 과정을 살펴봤습니다. 이번에는 배운 내용을 정리하는 차원으로 IRQ 스레드 전체 실행 흐름을 보면서 정리하는 시간을 갖겠습니다. [그림 6.7] "irq/86-mmc1" IRQ 스레드 실행 흐름도 눈끔 화살표는 함수 실행 흐름 방향입니다. 위 그림에서 실행 순서별 동작을 살펴보겠습니다. [1]: arch_cpu_idle() 함수 실행 중 86번 인터럽트가 발생해서 인터럽트 벡터인 __irq_svc가 실행합니다. [2]: __handle_irq_event_percpu() 함수까지 실행한 후 86번 인터럽트 핸들러인 bcm283
![[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드 핸들러인 irq_thread() 함수 분석](https://img.zoomtrend.com/2020/04/25/a0386257_5ea3804a5a10f.png)
[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드 핸들러인 irq_thread() 함수 분석
커널에서 지원하는 wake_up_process() 함수를 사용해 커널 스레드를 깨우면 스케줄러에 의해 커널 스레드는 실행을 시작합니다. 이 때 커널 스레드의 스레드 핸들 함수가 호출되며 스레드의 시나리오에 따라 정해진 동작을 수행합니다. 마찬가지로 IRQ 스레드의 스레드 핸들 함수는 irq_thread() 입니다. 따라서 IRQ 스레드가 깨어나면 irq_thread() 함수가 호출됩니다. 이번 시간에는 IRQ 스레드를 깨우면 실행하는 irq_thread() 함수를 살펴보겠습니다. 먼저 IRQ 스레드를 깨우면 실행하는 irq_thread() 함수를 보겠습니다. static int irq_thread(void *data)2 {3struct callback_head on_exit_work;4stru
[리눅스커널] 메모리: TRACE32로 슬랩 캐시 디버깅해보기
슬랩 캐시를 나타내는 링크드 리스트 확인 먼저 slab_caches 전역 변수를 확인해보자. $ v.v %t %h slab_caches (static struct list_head) slab_caches = ( (struct list_head *) next = 0xFFFFFFC72CA83E60, (struct list_head *) prev = 0xFFFFFFC6008FC060) slab_caches 전역변수의 next 필드는 struct kmem_cache 구조체의 list 필드를 가르킨다. 다음과 같은 명령어를 입력해보자. $ v.v %h %t %s container_of(0xFFFFFFC72CA83E60,struct kmem_cache,list) (struct kmem_cac



![[CV] [Comi] 'ファイブスター物語'(더 파이브 스타 스토리즈) 19권. 연재분에서 벌어지는 '검성 대 검성'](https://img.zoomtrend.com/2026/06/06/1780766083-ECB2ABEB93B1EC9EA5EB8DB0ECBD94EC8AA4.jpg)