mm/ 源码文件与模块索引

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 调试相关选项

文章互动

阅读 --

留言

0 条留言

正在加载留言…