RK3588平台开发系列讲解(内存篇)伙伴系统如何分配页面

请添加图片描述

文章目录

  • 一、通过接口找到内存节点
  • 二、开始分配
  • 三、准备分配页面的参数
  • 四、快速分配路径
  • 五、慢速分配路径

沉淀、分享、成长,让自己和他人都能有所收获!

分配物理内存页面的过程很好推理:首先要找到内存节点,接着找到内存区,然后合适的空闲链表,最后在其中找到页的 page 结构,完成物理内存页面的分配。

一、通过接口找到内存节点


我们先来了解一下分配内存页面的接口,我用一幅图来表示接口以及它们调用关系。我相信图解是理解接口函数的最佳方式,如下所示。

上图中,虚线框中为接口函数,下面则是分配内存页面的核心实现,所有的接口函数都会调用到 alloc_pages 函数,而这个函数最终会调用 __alloc_pages_nodemask 函数完成内存页面的分配。

下面我们来看看 al

你可能感兴趣的:(RK3588,Android12,开发入门到精通专栏,RK3588)