mm/ 源码文件与模块索引
源码路径:rk3588/kernel-6.1/mm/
内核版本:Linux 6.1
文档目录:linuxDoc/mm/
一、始终编译(obj-y)
| 文件 |
功能摘要 |
filemap.c |
通用文件 mmap、page cache、fault、读路径 |
mempool.c |
内存池,保证在原子上下文也能分配成功 |
oom_kill.c |
内存耗尽时选择并终止进程 |
fadvise.c |
posix_fadvise / readahead 建议 |
maccess.c |
内核安全访问用户内存 |
page-writeback.c |
脏页写回、回写控制 |
folio-compat.c |
folio 与 legacy struct page 兼容层 |
readahead.c |
预读控制 |
swap.c |
swap 子系统公共逻辑 |
truncate.c |
截断 inode 页缓存 |
vmscan.c |
LRU 扫描、kswapd、direct reclaim |
shmem.c |
tmpfs / 共享匿名内存(ashmem 等) |
util.c |
MM 通用工具函数 |
mmzone.c |
zone 相关辅助 |
vmstat.c |
/proc/vmstat、zone 统计 |
backing-dev.c |
backing device 写回队列 |
mm_init.c |
启动期 MM 校验与调试 |
percpu.c |
per-CPU 变量动态分配 |
slab_common.c |
slab 子系统公共接口 |
compaction.c |
内存压缩,缓解外部碎片 |
interval_tree.c |
VMA 区间树 |
list_lru.c |
按 memcg 的 LRU 列表 |
workingset.c |
refault 等 working set 启发 |
debug.c |
MM 调试辅助 |
gup.c |
get_user_pages 系列 |
mmap_lock.c |
mmap_lock 读写锁实现 |
page_alloc.c |
伙伴系统、zone、页分配核心 |
init-mm.c |
全局 init_mm |
memblock.c |
引导期 memblock 分配器 |
CONFIG_MMU=y 时额外链接(mmu-y)
| 文件 |
功能摘要 |
highmem.c |
高端内存(ARM64 通常不用) |
memory.c |
缺页、COW、页表操作、swap in/out |
mincore.c |
mincore() 系统调用 |
mlock.c |
mlock / munlock |
mmap.c |
mmap / munmap / brk |
mmu_gather.c |
TLB 批量 gather 卸载页表 |
mprotect.c |
mprotect() |
mremap.c |
mremap() |
msync.c |
msync() |
page_vma_mapped.c |
判断 page 是否在 VMA 中映射 |
pagewalk.c |
页表遍历框架 |
pgtable-generic.c |
通用页表辅助 |
rmap.c |
反向映射 |
vmalloc.c |
vmalloc / vmap |
process_vm_access.c |
process_vm_readv/writev(可选) |
二、Kconfig 可选模块
| CONFIG |
文件/目录 |
功能 |
CONFIG_SWAP |
page_io.c, swap_state.c, swapfile.c, swap_slots.c |
swap 分区/文件 |
CONFIG_ZSWAP |
zswap.c |
压缩 swap 缓存 |
CONFIG_FRONTSWAP |
frontswap.c |
frontswap 抽象 |
CONFIG_HAS_DMA |
dmapool.c |
DMA 池 |
CONFIG_HUGETLBFS |
hugetlb.c, hugetlb_cgroup.c |
显式大页 |
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP |
hugetlb_vmemmap.c |
大页 vmemmap 优化 |
CONFIG_NUMA |
mempolicy.c, memory-tiers.c |
NUMA 策略与内存分层 |
CONFIG_SPARSEMEM |
sparse.c |
稀疏内存模型 |
CONFIG_SPARSEMEM_VMEMMAP |
sparse-vmemmap.c |
虚拟 vmemmap |
CONFIG_SLUB |
slub.c |
SLUB 分配器(RK 默认) |
CONFIG_SLAB |
slab.c |
SLAB 分配器 |
CONFIG_SLOB |
slob.c |
SLOB(嵌入式) |
CONFIG_KASAN |
kasan/ |
内核地址消毒 |
CONFIG_KFENCE |
kfence/ |
采样式堆越界检测 |
CONFIG_KMSAN |
kmsan/ |
内核 MSan |
CONFIG_KSM |
ksm.c |
内核同页合并 |
CONFIG_MIGRATION |
migrate.c |
页迁移 |
CONFIG_DEVICE_MIGRATION |
migrate_device.c |
设备页迁移 |
CONFIG_TRANSPARENT_HUGEPAGE |
huge_memory.c, khugepaged.c |
透明大页 |
CONFIG_MEMCG |
memcontrol.c, vmpressure.c, swap_cgroup.c |
cgroup 内存控制 |
CONFIG_CMA |
cma.c, cma_debug.c, cma_sysfs.c |
连续内存分配器 |
CONFIG_MEMORY_HOTPLUG |
memory_hotplug.c |
内存热插拔 |
CONFIG_MEMORY_FAILURE |
memory-failure.c |
硬件内存错误处理 |
CONFIG_USERFAULTFD |
userfaultfd.c |
用户态缺页处理 |
CONFIG_DAMON |
damon/ |
数据访问监控 |
CONFIG_ZONE_DEVICE |
memremap.c |
设备内存 zone |
CONFIG_HMM_MIRROR |
hmm.c |
Heterogeneous Memory Management |
CONFIG_MEMFD_CREATE |
memfd.c |
memfd |
CONFIG_ZPOOL / ZBUD / ZSMALLOC / Z3FOLD |
对应 .c |
zswap 后端压缩存储 |
三、子目录
| 目录 |
说明 |
kasan/ |
KernelAddressSANitizer:shadow、report、quarantine |
kfence/ |
低开销堆内存错误检测 |
kmsan/ |
未初始化内存使用检测 |
damon/ |
DAMON:监控访问模式、回收/排序模块 |
四、内部头文件
| 文件 |
说明 |
internal.h |
mm 子系统内部 API、GFP 掩码、folio 辅助 |
slab.h |
slab 内部 |
cma.h |
CMA 内部 |
swap.h |
swap 内部 |
五、配置文件
| 文件 |
说明 |
Makefile |
编译单元与 KCOV/KCSAN 例外 |
Kconfig |
menu "Memory Management options" |
Kconfig.debug |
MM 调试相关选项 |
正在加载留言…