源码基于:Linux5.4
在 buddy 系统简介 一文中,详细的对 buddy 系统的分配原理进行简单地说明,并详细的剖析了 mem_init() 开始 buddy 系统的初始化过程。
在buddy 分配器前篇一文中,详细的说明了分配掩码的含义、分配物理内存的入口函数,并最终得知核心的处理函数是 __alloc_pages_nodemask()。本函数中,会根据分配掩码和分配order 进行快速分配,若快速分配过程并不能分配到内存时,会进入慢速分配内存的过程。
快速分配的过程之前用了 3 篇进行了详细的剖析,详细可以查看:快速分配(1)、快速分配(2)、