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

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

 

코로나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

번호 제목 글쓴이 날짜 조회 수
공지 [공지] IAMROOT 19차 커널 스터디 오리엔테이션 (zoom 접속 안내) [5] 문c(문영일) 2022.05.07 880
공지 [공지] IAMROOT 18차 커널 스터디 오리엔테이션 안내 [마감] [2] 문c(문영일) 2021.05.17 1249
공지 커널 스터디를 위한 문c 가이드입니다. [10] 문c(문영일) 2021.04.27 6471
1197 여기는 자유로운 주제로 이야기 나누는 곳입니다. [5] 백창우 2006.06.06 15436
1196 FPGA 스터디 [6] 이일렬 2006.06.12 16297
1195 각자 사진 올려주세요. 백창우 2006.06.15 10312
1194 사진 올려 놓았습니다. 백창우 2006.06.19 10468
1193 요즘 사이트 공격이 극성을 부리고 있습니다. 백창우 2006.06.26 9952
1192 컴파일러 세미나와 관련하여. [10] 백창우 2006.06.28 14973
1191 RISC32 Processor 구현 스터디 진행일정입니다. [2] 백창우 2006.06.28 9742
1190 다들 바쁘신가~ [1] 김종윤 2006.07.08 9510
1189 지난주 스터디는 어찌 되었는지요? 백창우 2006.07.10 9276
1188 지난주 스터디 진행~ [8] 김종윤 2006.07.10 8781
1187 신입인사도 여기다 하는건가요? [1] 조윤성 2006.07.14 8473
1186 공부해보고 싶은 CPU네요... [2] 이일렬 2006.07.14 12911
1185 메신져에 아무도 안들어 오시네요. [2] 백창우 2006.07.15 7837
1184 지난주 정리입니다. [6] 백창우 2006.08.01 10969
1183 참여 하고 싶은 학생입니다. [4] 유태경 2006.08.19 8655
1182 이번주 준비~ [3] 김종윤 2006.09.06 8894
1181 barrier() 넌 누구냐 ^^ 이일렬 2006.10.12 13097
1180 CELL 관련 자료들... [4] 이일렬 2006.11.28 12103
1179 영어가 잘 않되는 제가 셀을 공부하는 방법입니다. - 오늘 해보니 효과적입니다. - [1] 이일렬 2006.12.05 5758
1178 홈페이지 소개 메뉴에 대한 논의 [3] 백창우 2007.01.18 4290
XE Login