内存管理 - memblock_reserve 的工作原理

内存管理 - memblock_reserve 的工作原理

我正在处理 Marvel PXA986 板,在板文件中我可以看到很少使用memblock_reserve.但紧接着memblock_reserve,我就可以看到memblock_freememblock_remove接到电话。当我们保留内存时立即删除它有什么意义?

谁能解释一下 memblock API 吗?

答案1

我不确定我是否理解这个问题,但也许这至少是一个指向正确方向的指针。至于 API,我认为除了阅读源代码之外,没有什么其他可做的了。

这只不过是消息来源所说的散文版本。我查阅的版本是3.11.7。

mm/memblock.c如果看起来 1) memblock_reserve() 调用 memblock_add_region(),后者在某些条件下调用 memblock_double_array(),然后在某些条件下可能再次调用 memblock_free(),则快速洗牌相关位。当内核找到可用空间并且必须将指向实际内存区域的数组作为旧数组移动以防止数组已满时,就会发生这种情况(请参阅第 267-278 行mm/memblock.c)。

总结一下:我认为,如果您看到 memblock_free() 和 memblock_remove() 在 memblock_reserve() 之后立即被调用,则不一定是错误条件。

相关内容