[커널 20차] 27주차

2023.11.21 23:54

brw 조회 수:86

2023.11.11 (27주차) - 약 10명 참여

< __primary_switched >

adr_l x4, init_task

init_cpu_task x4, x5, x6

 

< 1. init_task 분석해보기 >

(init/init_task.c)

PSqNixRJOWRj06M1BPunTv0mYtG-6PYDUkKALjix

 

1) #ifdef CONFIG_ARCH_TASK_STRUCT_ON_STACK 

CONFIG_ARCH_TASK_STRUCT_ON_STACK은 default로 false여서 __init_task_data만 나와있다. 

 

+) include/linux/init_task.h

_r99I_zVeRJYannRAtLaWd7SqvHWpETK80R-bGyo

 

2) #ifdef CONFIG_THREAD_INFO_IN_TASK

struct thread_info {

         unsigned long           flags;          /* low level flags */

 #ifdef CONFIG_ARM64_SW_TTBR0_PAN

         u64                     ttbr0;          /* saved TTBR0_EL1 */

 #endif

         union {

                 u64             preempt_count;  /* 0 => preemptible, <0 => bug */

                 struct {

 #ifdef CONFIG_CPU_BIG_ENDIAN

                         u32     need_resched;

                         u32     count;

 #else    

                         u32     count;

                         u32     need_resched; 

 #endif     

                 } preempt;

         };

 #ifdef CONFIG_SHADOW_CALL_STACK

         void                    *scs_base;

         void                    *scs_sp;

 #endif   

         u32                     cpu;

 }; 

 

2-1. INIT_THREAD_INFO(init_task)

KUZceon_8MjLEHhkaDb4T3agSrZZLiB-pydy8DE0

- .flags = TIF_FOREIGN_FPSTATE (1 << 3)

03fRkZOaiDjj9KHW1fgRmQnNJLS5XS9Omo2evUYs

- .preempt_count = INIT_PREEMPT_COUNT 1

- INIT_SCS

babGOJM_IX6btX_pZ4ZlihiT9vYJ-sySNoMEfhPm

 

2-2. REFCOUNT_INIT(1)

- ATOMIC_INIT(1) 1

 

3) .state 0

TASK_RUNNING

 

4) .stack init_stack

Unsigned long init_stack[TRHEAD_SIZE / sizeof(unsigned long)]

- INIT_TASK_DATA 호출 

RuM3-p0qoNUKrLmFmmdNIvPrN8qfk36-ZbeMiSo3

- INIT_TASK_DATA

fR9F4zO1AqTOkKAyP6Rhfc2C_iS2jWNp-ZNPRkv2

kaQwPDsUBMtAdEqCJeL3s4MxcTvMS6e2Bp1APoXC

JmoXSze8UhW5qmWY5hlC9PLSMMv0iQSsOGi6EZAi


 

5) .flags PF_KTHREAD

xnAZR32x1jDlP2Kdmgt_huNMNWeh1jO6nuHsnJTI


 

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 스터디 정리 노트 공간입니다. woos 2016.05.14 626
247 [커널 20차] 48주차 무한질주 2024.04.25 19
246 [커널 19차] 102 주차 Min 2024.04.20 34
245 [커널 19차] 101 주차 Min 2024.04.13 62
244 [커널 19차] 100 주차 Min 2024.04.13 16
243 [커널 19차] 99 주차 Min 2024.03.30 82
242 [커널 19차] 98 주차 Min 2024.03.23 55
241 [커널 19차] 97 주차 Min 2024.03.16 50
240 [커널 19차] 96 주차 Min 2024.03.14 32
239 [커널 19차] 95 주차 [2] Min 2024.03.03 111
238 [커널 20차] 32주차 brw 2023.12.16 385
237 [커널 20차] 29주차 brw 2023.11.27 161
» [커널 20차] 27주차 brw 2023.11.21 86
235 [커널 20차] 26주차 brw 2023.11.21 48
234 [커널 20차] 28주차 이민찬 2023.11.19 64
233 [커널 20차] 25주차 이민찬 2023.10.30 120
232 [커널 20차] 24주차 이민찬 2023.10.22 730
231 [커널 20차] 23주차 이민찬 2023.10.14 81
230 [커널 20차] 22주차 이민찬 2023.10.08 76
229 [커널 20차] 21주차 이민찬 2023.09.23 116
228 [커널 20차] 20주차 [2] 이민찬 2023.09.17 182
XE Login