在内核FLAT和DISCONTIGMEM管理模型中,其实一直都存在两个问题
- 管理物理内存的数据结构本身占用内存较多,不使用于较大内存情况
- 无法解决空洞问题,不管是FLAT还是SPARCE模型都无法解决一个节点内的内存空洞问题,必须是一段连续空间即mem_map数组就很大,即使中间存在黑洞,mem_map数组必须也得申请,比较浪费空间
基于上述两个主要问题linux 物理内存模型技术演进到SPARCE模型 本意是稀疏即不再是连续的,space模式是从https://lwn.net/Articles/134804/开引入到内核中,下面说明了该模型的几个优势:
Sparsemem abstracts the use of discontiguous mem_maps[].This kind of mem_map[] is needed by discontiguous memory machines (like in the old CONFIG_DISCONTIGMEM case) as well as memory hotplug systems.Sparsemem replaces DISCONTIGMEM when enabled, and it is hoped that it can eventually becom