linux下memblock_reserve的作用是什么?该函数预留出来的内存可以在/proc/iomem中查看吗?通过该函数预留的内存应该用什么函数来释放?使用free_reserved_area释放可以吗?
时间: 2024-03-29 22:40:40 浏览: 200
个人整理的Linux内存管理的思维导图
memblock_reserve函数用于在内核初始化期间将某些内存区域标记为保留区域,以避免内存管理器将其用于其他目的。通常,这些区域包括设备映射、DMA缓冲区等。预留出来的内存可以在/proc/iomem中查看。
预留的内存需要使用memblock_free函数进行释放,而不是使用标准的释放函数,如kfree和free_reserved_area。这是因为memblock_reserve使用的是自己的内存分配器,因此需要使用相应的函数进行释放。
使用free_reserved_area函数是错误的,因为该函数仅用于释放由reserve_region函数保留的内存区域。如果您试图使用free_reserved_area函数释放由memblock_reserve保留的内存区域,则可能会导致不可预测的行为。
阅读全文