[커널 16차 스터디] 90주차 참석인원 조사
일시: 21년 5월 1일 토요일
코로나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); 부터 볼차례
댓글 6
.
참석 - 오프라인