mm 文档索引

mm 文档索引

Linux 6.1(RK3588)内存管理(Memory Management)子系统源码分析与原理说明。

总览文档

文档 说明
mm内存管理机制与原理详解.md 总览:架构、启动、各模块关系、RK3588 关联
源码文件与模块索引.md mm/ 文件清单、Makefile/Kconfig 对照

功能组专题(原理 + 实现)

每篇文档结构:原理 → 实现方式 → 数据结构/接口 → RK3588 → 调试 → 附录

编号 文档 源码重点
01 引导期内存机制与实现详解.md memblock、sparse、init-mm
02 物理页分配机制与实现详解.md page_alloc、buddy、zone、水位线
03 SLUB小对象分配机制与实现详解.md slub、slab_common、kmalloc
04 虚拟内存与缺页机制与实现详解.md memory、mmap、mprotect、mremap
05 页缓存与写回机制与实现详解.md filemap、readahead、writeback
06 反向映射机制与实现详解.md rmap、page_vma_mapped
07 内存回收与压缩机制与实现详解.md vmscan、workingset、compaction
08 OOM机制与实现详解.md oom_kill
09 CMA连续内存机制与实现详解.md cma、alloc_contig_range
10 交换与Zswap机制与实现详解.md swap*、zswap、page_io
11 cgroup内存控制机制与实现详解.md memcontrol、vmpressure、mempolicy
12 扩展内存机制与实现详解.md vmalloc、gup、migrate、hugetlb、shmem 等

源码路径

1
rk3588/kernel-6.1/mm/

阅读顺序建议

总览 mm内存管理机制与原理详解01 引导期02 物理页分配03 SLUB04 虚拟内存05 页缓存06 rmap07 回收与压缩08 OOM09 CMA10 交换11 memcg12 扩展机制

核心机制速查

机制 主要文件 关键入口
引导期内存 memblock.c memblock_add(), memblock_free_all()
物理页分配 page_alloc.c __alloc_pages()
小对象分配 slub.c kmem_cache_alloc(), kmalloc()
虚拟内存 / 缺页 memory.c, mmap.c handle_mm_fault(), do_mmap()
页缓存 filemap.c filemap_fault(), filemap_read()
反向映射 rmap.c try_to_unmap()
回收 vmscan.c balance_pgdat()
OOM oom_kill.c out_of_memory()
连续物理内存 cma.c cma_alloc()
cgroup 内存 memcontrol.c mem_cgroup_charge()

与 RK3588 编解码场景

  • CMA / reserved-memory:DT 预留连续内存,驱动 DMA buffer(VPU/RGA/DRM)→ 09
  • ZONE_DMA32:32 位 DMA 设备寻址 → 02
  • 回收 / OOM:多路编码 → 070811
  • Rockchip 快启延迟释放 memblock:→ 01

文章互动

阅读 --

留言

0 条留言

正在加载留言…