[리눅스커널] 프로세스: 유저 프로세스의 스레드 그룹 디버깅해보기
By Guillermo Austin Kim | 2020년 5월 5일 |
커널에서 실행 중인 프로세스는 커널 스레드인 커널 프로세스와 유저 프로세스로 구분할 수 있습니다.그런데 유저 공간에서 생성된 프로세스는 스레드 그룹의 리더 프로세스와 스레드 그룹에 속한 스레드로 분류할 수 있는데요. 이번 시간에는 프로세스의 태스크 디스크립터를 리뷰하면서 이 내용을 확인하겠습니다. 다음은 대부분 리눅스 시스템에서 확인할 수 있는 "swapper/1" 프로세스의 태스크 디스크립터입니다. (struct task_struct *) [-] (struct task_struct*)0xf0a1e900 = 0xF0A1E900 -> ( (long int) [D:0xF0A1E900] state = 0x0, (void *) [D:0xF0A1E904] stack = 0xF0A52000,
[리눅스커널] 워크큐: struct worker 구조체 파악하기
By Guillermo Austin Kim | 2020년 3월 11일 |
워커를 관리하고 저장하는 자료구조는 worker 구조체입니다. 이번 절에서는 worker 구조체의 세부 필드를 분석하겠습니다. worker 구조체 분석 다음은 worker 구조체의 선언부입니다. struct worker {2 union {3 struct list_head entry; 4 struct hlist_node hentry; 5 };6 struct work_struct *current_work; 7 work_func_t current_func; 8 struct pool_workqueue *current_pwq; 9 bool desc_valid;10 struct list_head scheduled; 1112 struct task_struct *task; 13 struct worker_p
[리눅스커널][공유] 퀄컴의 리눅스 커널 코드오로라- codeaurora 사이트(환상의 디버깅 자료)
By Guillermo Austin Kim | 2020년 5월 15일 |
SoC(System-on-Chip) 업계의 최강자이며 Top-of-the-food-chain인 퀄컴(Qualcomm)은 꾸준히 자신이 개발하고 있는리눅스 커널 소스를 특정 사이트에 올리고 있습니다. 최신 퀄컴(Qualcomm)이 개발하고 있는 리눅스 커널 소스를 볼 수 있는 코드 오로라(codeaurora) 사이트는 다음과 같습니다. 이 사이트에 가면 환상의 솔류션(크래시/성능 개선) 패치와 디버깅 용 패치를 감상할 수 있습니다.패치를 보면 마치 예전 마이클 조던이 더블 클러치와 같은 묘기를 보는 듯한 느낌입니다. 오히려 리눅스 커널 커뮤니티보다 훨씬 개발에 유용한 디버깅 패치를 더 많이 볼 수 있습니다. 그래서 틈나는 데로 코드 오로라(codeaurora) 사이트에서 패치 코드를 분석하곤 합니다