요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
======================
Memory Management APIs
======================
User Space Memory Access
========================
.. 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
.. _mm-api-gfp-flags:
Memory Allocation Controls
==========================
.. 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
The Slab Cache
==============
.. 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 Mappings
=============================
.. kernel-doc:: mm/vmalloc.c
:export:
File Mapping and Page Cache
===========================
Filemap
-------
.. kernel-doc:: mm/filemap.c
:export:
Readahead
---------
.. kernel-doc:: mm/readahead.c
:doc: Readahead Overview
.. kernel-doc:: mm/readahead.c
:export:
Writeback
---------
.. kernel-doc:: mm/page-writeback.c
:export:
Truncate
--------
.. kernel-doc:: mm/truncate.c
:export:
.. kernel-doc:: include/linux/pagemap.h
:internal:
Memory pools
============
.. kernel-doc:: mm/mempool.c
:export:
More Memory Management Functions
================================
.. 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
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Userspace memory 접근 API
1-16Memory 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-33GFP 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-48The 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-54Virtually Contiguous Mappings
다음 directive는 `mm/vmalloc.c`가 export하는 virtually contiguous mapping API 문서를 포함합니다.
.. kernel-doc:: mm/vmalloc.c
:export:
File mapping과 page cache API
55-87File 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-93Memory pools
다음 directive는 `mm/mempool.c`의 export API를 포함합니다.
.. kernel-doc:: mm/mempool.c
:export:
추가 memory management function
94-134More 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
요약과 해설
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 상태를 재검토할 수 있게 합니다.