[커널 16차 스터디] 97주차 참석인원 조사

일시: 21년 6월 19일 토요일

 

코로나19로 인해 온라인과 오프라인을 병행할 예정입니다

참석여부 및 참여 방식을 댓글로 남겨주세요

ex) 참석 - 온라인, 참석 - 오프라인


[스터디 로그]

000 (2019-05-18) : OT
001 (2019-05-25) : A, B, C 각 조별 스터디
...
020 (2019-10-26) : A, B, C 각 조별 스터디
021 (2019-11-02) : 통합 연습 스터디
022 (2019-11-09) : 통합 연습 스터디 2
023 (2019-11-16) : 통합 전 각 조별 스터디
024 (2019-11-23)
025 (2019-11-30)
026 (2019-12-07)
027 (2019-12-14)
028 (2019-12-21)
setup_arch
- setup_machine_fdt
-- fixmap_remap_fdt 까지 진행
029 (2020-01-04)
030 (2020-01-11)
031 (2020-01-18)
032 (2020-02-01)
033 (2020-02-08)
034 (2020-02-15)
035 (2020-02-22)
036 (2020-02-29)
setup_arch
- arm64_memblock_init
-- early_init_fdt_scan_reserved_mem 까지 진행
037 (2020-03-07)
setup_arch
- arm64_memblock_init
-- dma_contiguous_reserve
--- dma_contiguous_reserve_area
---- cma_declare_contiguous
----- cma_init_reserved_mem 이전 까지 진행
038 (2020-03-14)
setup_arch
- paging_init
-- map_kernel 까지 진행
039 (2020-03-21)
040 (2020-03-28)
041 (2020-04-04)
setup_arch
- unflatten_device_tree
-- __unflatten_device_tree
--- unflatten_dt_nodes
---- populate_node
----- populate_properties
------ “if (!has_name) {“ 이전 까지 진행
042 (2020-04-11)
setup_arch
- unflatten_device_tree
-- unittest_unflatten_overlay_base 이전 까지 진행
043 (2020-04-18)
setup_arch
- arm64_numa_init
-- of_numa_init
--- of_numa_parse_memory_nodes
---- of_address_to_resource
----- of_get_address
------ of_get_property 이전 까지 진행
044 (2020-04-25)
045 (2020-05-09)
setup_arch
- bootmem_init
-- memblocks_present
--- memory_present
---- section_mark_present 이전 까지 진행
046 (2020-05-16)
setup_arch
- bootmem_init
-- spare_init
--- sparse_init_nid
---- sparse_mem_map_populate(vmemmap)
----- pfn_to_page. 까지 진행
047 (2020-05-23)
setup_arch
- bootmem_init
-- spare_init
--- sparse_init_nid
---- check_usemap_section_nr 이전 까지 진행
048 (2020-05-30)
setup_arch
- bootmem_init
-- zone_sizes_init
--- free_area_init_nodes
---- find_zone_movable_pfns_for_nodes
----- “if (required_kernelcore_percent)” 이전 까지 진행
049 (2020-06-06)
setup_arch
- bootmem_init
-- zone_sizes_init
--- free_area_init_nodes
---- free_area_init_node
----- calculate_node_totalpages
------ zone_spanned_pages_in_node 이전 까지 진행
050 (2020-06-13)
setup_arch
- bootmem_init
-- zone_sizes_init
--- free_area_init_nodes
---- free_area_init_node
----- free_area_init_core
------ memmap_init
------- memmap_init_zone
-------- __init_single_page 이전 까지 완료
051 (2020-06-20)
setup_arch
- bootmem_init 까지 진행
052 (2020-06-27)
setup_arch
- bootmem_init 리뷰
053 (2020-07-04)
setup_arch
- bootmem_init 리뷰 2
054 (2020-07-11)
setup_arch
- cpu_read_bootcpu_ops
-- cpu_read_ops
--- cpu_read_enable_method
---- of_get_cpu_node
----- arch_find_n_match_cpu_physical_id
------ __of_find_n_match_cpu_property 까지 진행
055 (2020-07-18)
setup_per_cpu_areas
- pcpu_embed_first_chunk
-- pcpu_build_alloc_info
--- "max_upa = upa;" 까지 진행
056 (2020-07-25)
setup_per_cpu_areas
- pcpu_embed_first_chunk
-- pcpu_setup_first_chunk
--- PCPU_SETUP_BUG_ON 까지 진행
057 (2020-08-01)
setup_per_cpu_areas
- pcpu_embed_first_chunk
-- pcpu_setup_first_chunk
--- pcpu_alloc_first_chunk
---- pcpu_block_update_hint_alloc 이전 까지 진행
058 (2020-08-08)
setup_per_cpu_areas 완료 후 리뷰
059 (2020-08-29)
per-cpu 개념 복습
static-key 개념
060 (2020-09-05)
start_kernel
- smp_prepare_boot_cpu
-- jump_label_init
061 (2020-09-12)
start_kernel
- smp_prepare_boot_cpu
-- jump_label_init 완료 후 static key 리뷰
062 (2020-09-19)
start_kernel
- smp_prepare_boot_cpu
-- cpuinfo_store_boot_cpu
--- init_cpu_features
---- init_cpu_ftr_reg
063 (2020-09-26)
start_kernel
- smp_prepare_boot_cpu
-- apply_boot_alternatives
--- __apply_alternatives
---- patch_alternative
----- get_alt_insn 
064 (2020-10-10)
-smp_prepare_boot_cpu
-- init_gic_priority_masking
065 (2020-10-17)
build_all_zonelists   (init/main.c)
- build_all_zonelists_init  (mm/page_alloc.c)
--  for_each_possible_cpu  (mm/page_alloc.c) 
066 (2020-10-24)
- page_allocinit
-- page_alloc_cpu_dead
--- lru_add_drain_cpu
____ __pagevec_lru_add_fn
067 (2020-10-31)
Mastering linux kernel development,
Chap 4. Memory Management and Allocators 중
Page mobility and placement 까지 읽음 (p122 시작부)
068 (2020-11-07)
1. 책 : Mastering linux kernel development
Chap 4. Memory Management and Allocators (pp.124-139)
2. 코드 분석
alloc_pages (include/linux/gfp.h)
- alloc_pages_current (mm/mempolicy.c)
-- __alloc_pages_nodemask (mm/page_alloc.c) <-- 분석하다가 중단
--- get_page_from_freelist
---- rmqueue
----- __rmqueue_smallest <-- 분석 완료
------ rmv_page_order
------- __ClearPageBuddy (include/linux/page-flags.h:716)
------ expand
------- set_page_guard
------- set_page_order
-------- __SetPageBuddy (include/linux/page-flags.h:716)

069 (2020-11-14)
- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- get_page_from_freelist
----- zone_watermark_fast
------ __zone_watermark_ok <- 진행 中

070 (2020-11-21)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- get_page_from_freelist
----- rmqueue
------ __rmqueue
------- _rmqueue_fallback
-------- steal_suitable_fallback
--------- move_freepages_block

071 (2020-11-28)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- get_page_from_freelist
----- rmqueue
------ __mod_zone_freepage_state 
------- __mod_zone_page_state

072 (2020-12-5)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- get_page_from_freelist -> 완료

073 (2020-12-12)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c)
---------- compaction_suitable (mm/compaction.c)
----------- __compaction_suitable (mm/compaction.c) -> 완료

074 (2020-12-19)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c) -> migrate_prep_local() 까지 보고, 뒤의 while 부터 볼차례 

075 (2021-1-9)

__alloc_pages_slowpath 복습

076 (2021-1-16)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c) 

--------- isolate_migratepages (mm/compaction.c) -> 1798 isolation_suitable() 부터 볼차례 

077 (2021-1-23)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c) 

--------- isolate_migratepages (mm/compaction.c) 

---------- isolate_migratepages_block (mm/compaction.c) -> 1006 isolate_fail: 부터 볼차례 (+ vmstat.c 536 mod_node_state() 정리)

078 (2021-1-30)

리눅스 커널의 이해(3판)
 9장. 프로세스 주소공간 : p399 '주소 공간 밖의 잘못된 주소 처리하기' 까지 진행

079 (2021-2-6)

리눅스 커널의 이해(3판)
 9장. 프로세스 주소공간 p408 '불연속적인 메모리 영역 접근 처리'까지 진행

080 (2021-2-20)

리눅스 커널의 이해(3판)

 12장 - 가상 파일 시스템 역할, 파일 객체, 아이노드 객체, 디엔트리 객체, 디엔트리 객체 캐시

 15장 - 페이지 캐시에서 페이지 캐시처리 함수 부분

081 (2021-2-27)

리눅스 커널의 이해(3판)

 17장 - 페이지 프레임 회수 p692 'LRU 리스트 시이의 페이지 이동'까지 진행

082 (2021-3-6)

리눅스 커널의 이해(3판)

 17장 - 페이지 프레임 회수 p705 '아이노드 캐시에서 페이지 프레임 회수하기'까지 진행

083 (2021-3-13)

리눅스 커널의 이해(3판)

 17장 - 페이지 프레임 회수 p720 'sys_swapoff() 서비스 루틴'까지 진행

084 (2021-3-20)

리눅스 커널의 이해(3판)

 17장 - 페이지 프레임 회수 p730 '스왑 캐시에서 페이지 프레임 제거하기'까지 진행

085 (2021-3-27)

리눅스 커널의 이해(3판)

 17장 - 페이지 프레임 회수 마치고 요약정리 진행

086 (2021-4-3)

Understanding the Linux Virtual Memory Manager

 10. Page Frame Reclamation 진행

087 (2021-4-10)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c) -> 2181 migrate_pages() 전까지 진행 

088 (2021-4-17)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c)

--------- migrate_pages (mm/compaction.c) -> unmap_and_move_huge_page()보다 unmap_and_move()를 먼저 분석

---------- unmap_and_move  (mm/migrate.c) -> get_new_page() : compaction에서는 compaction_alloc()함수 호출

------------ compaction_alloc (mm/compaction.c)

------------- isolate_freepages (mm/compaction.c) -> 1465행 for문부터 볼차례

089 (2021-4-24)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c)

--------- migrate_pages (mm/compaction.c) -> unmap_and_move_huge_page()보다 unmap_and_move()를 먼저 분석

---------- unmap_and_move  (mm/migrate.c)

----------- __unmap_and_move (mm/migrate.c)

------------ move_to_new_page (mm/migrate.c)

------------- migrate_page (mm/migrate.c)

-------------- migrate_page_move_mapping (mm/migrate.c) -> 454행 dirty = PageDirty(page); 부터 볼차례

090 (2021-5-1)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c)

--------- migrate_pages (mm/compaction.c) -> unmap_and_move_huge_page()보다 unmap_and_move()를 먼저 분석

---------- unmap_and_move  (mm/migrate.c)

----------- __unmap_and_move (mm/migrate.c) -> 1089행 move_to_new_page()함수 다음줄 부터 볼차례

091 (2021-5-8)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c)

--------- migrate_pages (mm/compaction.c) -> unmap_and_move_huge_page()보다 unmap_and_move()를 먼저 분석

---------- unmap_and_move  (mm/migrate.c)

----------- __unmap_and_move (mm/migrate.c) 

------------ try_to_unmap(mm/rmap.c) -> rmap_walk_lock보다 rmap_walk부터 분석

------------- rmap_walk(mm/rmap.c) -> rmap_walk_ksm와 rmap_walk_file보다 rmap_walk_anon부터 분석

-------------- rmap_walk_anon(mm/rmap.c) - rmap_one -> try_to_unmap_one

--------------- try_to_unmap_one(mm/rmap.c)

---------------- page_vma_mapped_walk (mm/page_vma_mapped.c) -> 183행 pmde = READ_ONCE(*pvmw->pmd); 부터 볼차례

092 (2021-5-15)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c)

--------- migrate_pages (mm/compaction.c) -> unmap_and_move_huge_page()보다 unmap_and_move()를 먼저 분석

---------- unmap_and_move  (mm/migrate.c)

----------- __unmap_and_move (mm/migrate.c) 

------------ try_to_unmap(mm/rmap.c) -> rmap_walk_lock보다 rmap_walk부터 분석

------------- rmap_walk(mm/rmap.c) -> rmap_walk_ksm와 rmap_walk_file보다 rmap_walk_anon부터 분석

-------------- rmap_walk_anon(mm/rmap.c) - rmap_one -> try_to_unmap_one

--------------- try_to_unmap_one(mm/rmap.c)

---------------- put_page (include/linux/mm.h) __put_page부터 볼차례, 버디시스템 해지 : free_pages (mm/page_alloc.c) 분석 예정

093 (2021-5-22)

- alloc_pages (include/linux/gfp.h)
-- alloc_pages_current (mm/mempolicy.c)
--- __alloc_pages_nodemask (mm/page_alloc.c)
---- __alloc_pages_slowpath (mm/page_alloc.c)
----- __alloc_pages_direct_compact (mm/page_alloc.c)
------ try_to_compact_pages (mm/compaction.c)
------- compact_zone_order (mm/compaction.c)  
-------- compact_zone (mm/compaction.c) -> check_drain: 부터 시작, compaction 및 rmap 다시 볼 예정

094 (2021-5-29)

compaction 관련 중요한 commit을 시간순으로 리뷰

-5e1f0f098b4649fad53011246bcaeff011ffdf5d mm, compaction: capture a page under direct compaction
-1fb3f8ca0e9222535a39b884cb67a34628411b9f mm: compaction: capture a suitable high-order page immediately when it is made available
-85aa125f001f87f96a72e9e6ee515490843b1202 mm: compaction: introduce isolate_freepages_range()
-2fe86e0004076128f05d5a774b5c9c03d9dc3de2 mm: compaction: introduce isolate_migratepages_range()
-3e7d344970673c5334cf7b5bb27c8c0942b06126 mm: vmscan: reclaim order-0 and use compaction instead of lumpy reclaim

095 (2021-6-5)

compaction 관련 중요한 commit을 시간순으로 리뷰 끝. 

096 (2021-6-12)

rmap 리뷰 (fork, anon_vma)​

번호 제목 글쓴이 날짜 조회 수
공지 [공지] IAMROOT 19차 커널 스터디 오리엔테이션 (zoom 접속 안내) [5] 문c(문영일) 2022.05.07 2567
공지 [공지] IAMROOT 18차 커널 스터디 오리엔테이션 안내 [마감] [2] 문c(문영일) 2021.05.17 2053
공지 커널 스터디를 위한 문c 가이드입니다. [10] 문c(문영일) 2021.04.27 7964
1197 커널20기 모임 질문입니다. [16] 고미c 2023.04.29 1055
1196 [커널 19차] 42 주차 이태백 2023.03.11 298
1195 아키텍처 스터디 모집 [4] 구본규 2022.10.21 966
1194 [커널 16차] 졸업 소회 [5] file 이파란 2022.10.18 1327
1193 [공지] 커널 16차 스터디를 종료합니다. (고생많으셨습니다!) [10] 이파란 2022.10.09 2482
1192 [커널 16차] 164주차 [3] 이파란 2022.10.01 413
1191 [커널 16차] 163주차 [3] 이파란 2022.09.25 198
1190 [커널 16차] 162주차 [2] 이파란 2022.09.17 223
1189 [커널 16차] 161주차 [3] 이파란 2022.09.03 189
1188 [커널 16차] 160주차 [2] 이파란 2022.08.27 166
1187 [커널 16차] 159주차 [1] 이파란 2022.08.20 155
1186 [커널 16차] 158주차 [1] 이파란 2022.08.13 177
1185 [커널 16차] 157주차 [2] 이파란 2022.08.06 212
1184 [커널 16차] 156주차 [1] 이파란 2022.07.31 188
1183 [커널 16차] 155주차 [1] 이파란 2022.07.23 174
1182 [커널 16차] 154주차 [3] 이파란 2022.07.17 169
1181 [커널 16차] 153주차 [2] 이파란 2022.07.09 183
1180 [커널 16차] 152주차 [5] 이파란 2022.07.03 430
1179 [커널 16차] 151주차 이파란 2022.06.26 161
1178 [커널 16차] 150주차 [3] 이파란 2022.06.19 169
XE Login