[커널 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)
댓글 4
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [공지] IAMROOT 19차 커널 스터디 오리엔테이션 (zoom 접속 안내) [5] | 문c(문영일) | 2022.05.07 | 878 |
공지 | [공지] IAMROOT 18차 커널 스터디 오리엔테이션 안내 [마감] [2] | 문c(문영일) | 2021.05.17 | 1249 |
공지 | 커널 스터디를 위한 문c 가이드입니다. [10] | 문c(문영일) | 2021.04.27 | 6468 |
1097 | OS 커널 개발에 관심있으신분 계세요? [108] | 백창우 | 2013.06.12 | 7884 |
1096 | 창우님 고생이 많으세요. [1] | 장동일 | 2010.02.22 | 7870 |
1095 | 새로 개설하는 스터디 | 백창우 | 2009.04.27 | 7865 |
1094 | 메신져에 아무도 안들어 오시네요. [2] | 백창우 | 2006.07.15 | 7837 |
1093 | 재미난 이슈거리 [3] | 백창우 | 2011.10.24 | 7779 |
1092 | 창우님 수고 많으십니다. [3] | 맥주 | 2010.02.17 | 7744 |
1091 | 커널 스터디 진행중인 모임은 없나요? [1] | 신재호 | 2011.03.11 | 7682 |
1090 | SW Maestro 모집 공고 [1] | 백창우 | 2012.04.17 | 7655 |
1089 | GCC 2차 세미나 입금 받도록 하겠습니다. [8] | 백창우 | 2009.04.27 | 7651 |
1088 | 안녕하세요. [1] | 이훈 | 2011.03.06 | 7625 |
1087 | 문의 사항들 정리 [6] | 백창우 | 2009.04.30 | 7613 |
1086 | 첫모임 장소 [16] | 문대혁 | 2010.03.29 | 7610 |
1085 | 가입인사 드립니다. [3] | 김세라 | 2011.08.30 | 7606 |
1084 | 안녕하세요 ㅋ [3] | 정성욱 | 2010.03.24 | 7593 |
1083 | 세미나실 문의 [5] | 백창우 | 2010.03.24 | 7574 |
1082 | GCC 세미나 자료 [3] | 백창우 | 2009.04.06 | 7571 |
1081 | 스터디 첫주, 둘째주에 참석이 힘들거 같은데 괜찮을까요??? | 권민균 | 2011.03.15 | 7507 |
1080 | 안녕하세요. [1] | 한택수 | 2010.02.21 | 7497 |
1079 | 세미나를 슬슬 준비해볼까 합니다. ^^ [14] | 백창우 | 2011.07.10 | 7492 |
1078 | 이정우님 김수연님께. [2] | 백창우 | 2009.04.14 | 7490 |
.