← Documents Documentation/core-api/mm-api.rst GitHub 원문 ↗

Linux 6.18.37 · Core API

Memory Management APIs

Userspace access, GFP control, slab, vmalloc, page cache, mempool과 광범위한 core MM implementation의 kernel-doc reference를 한곳에 구성합니다.

Source pathDocumentation/core-api/mm-api.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

mm-api.rst:1-134

이 문서는 설명형 guide라기보다 Linux memory management kernel-doc의 index입니다. Userspace copy와 GUP, GFP flag, slab과 vmalloc, filemap·readahead·writeback·truncate, mempool을 먼저 분류합니다.

마지막 절은 page allocator, mempolicy, page flag, reverse mapping, migration, memory cgroup, hotplug, MMU notifier 등 core MM subsystem의 header와 implementation을 연결합니다. `:internal:`, `:export:`, `:functions:`, `:doc:` selector가 노출 범위를 결정합니다.

Build warning이나 중복 때문에 비활성화한 kernel-doc directive도 source path와 사유를 그대로 남겨, 향후 문서 build 상태를 재검토할 수 있게 합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 ======================
2 Memory Management APIs
3 ======================
4
5 User Space Memory Access
6 ========================
7
8 .. kernel-doc:: arch/x86/include/asm/uaccess.h
9 :internal:
10
11 .. kernel-doc:: arch/x86/lib/usercopy_32.c
12 :export:
13
14 .. kernel-doc:: mm/gup.c
15 :functions: get_user_pages_fast
16
17 .. _mm-api-gfp-flags:
18
19 Memory Allocation Controls
20 ==========================
21
22 .. kernel-doc:: include/linux/gfp_types.h
23 :doc: Page mobility and placement hints
24
25 .. kernel-doc:: include/linux/gfp_types.h
26 :doc: Watermark modifiers
27
28 .. kernel-doc:: include/linux/gfp_types.h
29 :doc: Reclaim modifiers
30
31 .. kernel-doc:: include/linux/gfp_types.h
32 :doc: Useful GFP flag combinations
33
34 The Slab Cache
35 ==============
36
37 .. kernel-doc:: include/linux/slab.h
38 :internal:
39
40 .. kernel-doc:: mm/slub.c
41 :export:
42
43 .. kernel-doc:: mm/slab_common.c
44 :export:
45
46 .. kernel-doc:: mm/util.c
47 :functions: kfree_const kvmalloc_node kvfree
48
49 Virtually Contiguous Mappings
50 =============================
51
52 .. kernel-doc:: mm/vmalloc.c
53 :export:
54
55 File Mapping and Page Cache
56 ===========================
57
58 Filemap
59 -------
60
61 .. kernel-doc:: mm/filemap.c
62 :export:
63
64 Readahead
65 ---------
66
67 .. kernel-doc:: mm/readahead.c
68 :doc: Readahead Overview
69
70 .. kernel-doc:: mm/readahead.c
71 :export:
72
73 Writeback
74 ---------
75
76 .. kernel-doc:: mm/page-writeback.c
77 :export:
78
79 Truncate
80 --------
81
82 .. kernel-doc:: mm/truncate.c
83 :export:
84
85 .. kernel-doc:: include/linux/pagemap.h
86 :internal:
87
88 Memory pools
89 ============
90
91 .. kernel-doc:: mm/mempool.c
92 :export:
93
94 More Memory Management Functions
95 ================================
96
97 .. kernel-doc:: mm/memory.c
98 :export:
99
100 .. kernel-doc:: mm/page_alloc.c
101 .. kernel-doc:: mm/mempolicy.c
102 .. kernel-doc:: include/linux/mm_types.h
103 :internal:
104 .. kernel-doc:: include/linux/mm_inline.h
105 .. kernel-doc:: include/linux/page-flags.h
106 .. kernel-doc:: include/linux/mm.h
107 :internal:
108 .. kernel-doc:: include/linux/page_ref.h
109 .. kernel-doc:: include/linux/mmzone.h
110 .. kernel-doc:: mm/util.c
111 :functions: folio_mapping
112
113 .. kernel-doc:: mm/rmap.c
114 .. kernel-doc:: mm/migrate.c
115 .. kernel-doc:: mm/mmap.c
116 .. kernel-doc:: mm/kmemleak.c
117 .. #kernel-doc:: mm/hmm.c (build warnings)
118 .. kernel-doc:: mm/memremap.c
119 .. kernel-doc:: mm/hugetlb.c
120 .. kernel-doc:: mm/swap.c
121 .. kernel-doc:: mm/memcontrol.c
122 .. #kernel-doc:: mm/memory-tiers.c (build warnings)
123 .. kernel-doc:: mm/shmem.c
124 .. kernel-doc:: mm/migrate_device.c
125 .. #kernel-doc:: mm/nommu.c (duplicates kernel-doc from other files)
126 .. kernel-doc:: mm/mapping_dirty_helpers.c
127 .. #kernel-doc:: mm/memory-failure.c (build warnings)
128 .. kernel-doc:: mm/percpu.c
129 .. kernel-doc:: mm/maccess.c
130 .. kernel-doc:: mm/vmscan.c
131 .. kernel-doc:: mm/memory_hotplug.c
132 .. kernel-doc:: mm/mmu_notifier.c
133 .. kernel-doc:: mm/balloon_compaction.c
134 .. kernel-doc:: mm/huge_memory.c
135

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Userspace memory 접근 API

1-16

Memory Management APIs

User Space Memory Access

다음 kernel-doc directive는 x86 userspace access header의 internal API, 32-bit usercopy implementation의 export API, 그리고 `mm/gup.c`의 `get_user_pages_fast` function 문서를 포함합니다.

.. kernel-doc:: arch/x86/include/asm/uaccess.h
   :internal:

.. kernel-doc:: arch/x86/lib/usercopy_32.c
   :export:

.. kernel-doc:: mm/gup.c
   :functions: get_user_pages_fast

Memory allocation control

17-33

GFP flag reference anchor는 `mm-api-gfp-flags`입니다.

Memory Allocation Controls

다음 directive는 `include/linux/gfp_types.h`에서 page mobility와 placement hint, watermark modifier, reclaim modifier, 유용한 GFP flag 조합 문서를 차례로 가져옵니다.

.. kernel-doc:: include/linux/gfp_types.h
   :doc: Page mobility and placement hints

.. kernel-doc:: include/linux/gfp_types.h
   :doc: Watermark modifiers

.. kernel-doc:: include/linux/gfp_types.h
   :doc: Reclaim modifiers

.. kernel-doc:: include/linux/gfp_types.h
   :doc: Useful GFP flag combinations

Slab cache API

34-48

The Slab Cache

다음 directive는 `include/linux/slab.h`의 internal API와 `mm/slub.c`, `mm/slab_common.c`의 export API를 포함합니다. `mm/util.c`에서는 `kfree_const`, `kvmalloc_node`, `kvfree` function만 선택합니다.

.. kernel-doc:: include/linux/slab.h
   :internal:

.. kernel-doc:: mm/slub.c
   :export:

.. kernel-doc:: mm/slab_common.c
   :export:

.. kernel-doc:: mm/util.c
   :functions: kfree_const kvmalloc_node kvfree

Virtually contiguous mapping API

49-54

Virtually Contiguous Mappings

다음 directive는 `mm/vmalloc.c`가 export하는 virtually contiguous mapping API 문서를 포함합니다.

.. kernel-doc:: mm/vmalloc.c
   :export:

File mapping과 page cache API

55-87

File Mapping and Page Cache

Filemap

다음 directive는 `mm/filemap.c`의 export API를 포함합니다.

.. kernel-doc:: mm/filemap.c
   :export:

Readahead

다음 directive는 `mm/readahead.c`의 `Readahead Overview` 문서와 export API를 포함합니다.

.. kernel-doc:: mm/readahead.c
   :doc: Readahead Overview

.. kernel-doc:: mm/readahead.c
   :export:

Writeback

다음 directive는 `mm/page-writeback.c`의 export API를 포함합니다.

.. kernel-doc:: mm/page-writeback.c
   :export:

Truncate

다음 directive는 `mm/truncate.c`의 export API와 `include/linux/pagemap.h`의 internal API를 포함합니다.

.. kernel-doc:: mm/truncate.c
   :export:

.. kernel-doc:: include/linux/pagemap.h
   :internal:

Memory pool API

88-93

Memory pools

다음 directive는 `mm/mempool.c`의 export API를 포함합니다.

.. kernel-doc:: mm/mempool.c
   :export:

추가 memory management function

94-134

More Memory Management Functions

이 절은 core memory, page allocator, NUMA memory policy, memory type과 inline helper, page flag와 reference, zone, reverse mapping, migration, mmap, kmemleak, remap, huge page, swap, memory cgroup, shmem, device migration, dirty mapping helper, per-CPU allocation, memory access, reclaim, hotplug, MMU notifier, balloon compaction, transparent huge page 구현의 kernel-doc을 모읍니다.

`mm/memory.c`는 export API를 포함하고 `include/linux/mm_types.h`와 `include/linux/mm.h`는 internal API를 포함합니다. `mm/util.c`에서는 `folio_mapping` function만 선택합니다.

`mm/hmm.c`, `mm/memory-tiers.c`, `mm/memory-failure.c`는 build warning 때문에 비활성화되어 있으며 `mm/nommu.c`는 다른 file의 kernel-doc과 중복되어 비활성화되어 있습니다. 주석 처리된 source path와 이유도 원문 그대로 보존합니다.

.. kernel-doc:: mm/memory.c
   :export:

.. kernel-doc:: mm/page_alloc.c
.. kernel-doc:: mm/mempolicy.c
.. kernel-doc:: include/linux/mm_types.h
   :internal:
.. kernel-doc:: include/linux/mm_inline.h
.. kernel-doc:: include/linux/page-flags.h
.. kernel-doc:: include/linux/mm.h
   :internal:
.. kernel-doc:: include/linux/page_ref.h
.. kernel-doc:: include/linux/mmzone.h
.. kernel-doc:: mm/util.c
   :functions: folio_mapping

.. kernel-doc:: mm/rmap.c
.. kernel-doc:: mm/migrate.c
.. kernel-doc:: mm/mmap.c
.. kernel-doc:: mm/kmemleak.c
.. #kernel-doc:: mm/hmm.c (build warnings)
.. kernel-doc:: mm/memremap.c
.. kernel-doc:: mm/hugetlb.c
.. kernel-doc:: mm/swap.c
.. kernel-doc:: mm/memcontrol.c
.. #kernel-doc:: mm/memory-tiers.c (build warnings)
.. kernel-doc:: mm/shmem.c
.. kernel-doc:: mm/migrate_device.c
.. #kernel-doc:: mm/nommu.c (duplicates kernel-doc from other files)
.. kernel-doc:: mm/mapping_dirty_helpers.c
.. #kernel-doc:: mm/memory-failure.c (build warnings)
.. kernel-doc:: mm/percpu.c
.. kernel-doc:: mm/maccess.c
.. kernel-doc:: mm/vmscan.c
.. kernel-doc:: mm/memory_hotplug.c
.. kernel-doc:: mm/mmu_notifier.c
.. kernel-doc:: mm/balloon_compaction.c
.. kernel-doc:: mm/huge_memory.c