AI智能摘要
系列深入剖析Linux内存管理在ARM64架构下的原理与实现,覆盖物理内存初始化流程、核心分配器机制(如buddy、slab、vmalloc、CMA等)、缺页异常处理、页面回收、内存节点解析等关键环节,结合Kernel 5.15源码与丰富补充资料,帮助读者系统理解底层架构与内存管理优化要点
此摘要由AI分析文章内容生成,仅供参考。

前言:

还是习惯性的以前言开篇,“深入骨髓”的程序猿思想,干啥事都想从main 开始\~\~

本系列分析的源码都遵循如下的约定:

1. 芯片架构:ARM64

2. 内存架构:UMA

3. 内核版本:如无特别说明,本系列源码基于Kernel 5.15

4. CONFIG_ARM64_VA_BITS=39

5. CONFIG_ARM64_PAGE_SHIFT=12

6. CONFIG_PGTABLE_LEVELS=3

7. CONFIG_ARM64_PA_BITS=48

8. CONFIG_SPARSEMEM=y

9. ...

本系列的源码opengrok:iliuqi的linux-5.15

内存管理的一些预备知识

物理内存初始化流程

这个阶段会详细从源码剖析,这部分主要为转载到的优秀的博文(部分博文内容会根据kernel-5.15的内核的变动做一些修改),辅以补充形式的文章。

buddy 分配器

percpu 分配器

CMA 分配器

slab 分配器

vmalloc 分配器

ION 分配器

DMA-BUF分配器

缺页异常处理

memcg

PSI

页面回收

内存规整

内存节点

其他

本系列文章中涉及的专业术语: