mm 文档索引
Linux 6.1(RK3588)内存管理(Memory Management)子系统源码分析与原理说明。
总览文档
功能组专题(原理 + 实现)
每篇文档结构:原理 → 实现方式 → 数据结构/接口 → RK3588 → 调试 → 附录。
源码路径
阅读顺序建议
核心机制速查
| 机制 |
主要文件 |
关键入口 |
| 引导期内存 |
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:多路编码 → 07、08、11
- Rockchip 快启延迟释放 memblock:→ 01
正在加载留言…