分类: LINUX
2012-04-26 12:26:14
Bootmem & memblock
1. usage
Memory allocation before mem-allocator setup.
2. bootmem disadvantage.
Bootmem设计目标: 于mem-buddy建立前,提供简单的内存分配,因此,它的算法实现相对简单,并不追求性能。在mem-buddy建立时,会将所有未分配的memory释放,但由于已分配的内存在bootmem中以类似线性分配的方式分配,因此在回收未使用的bootmem时,就很有可能会产生memory fragment。
3. Memblock原理及添加目的。
Memblock 原理:
1. 管理可用于分配memory(memory region)以分配内存(reserved memory)
2. allocate 时,尝试于现有的reserved memory连续
3. 释放时,使释放memory与memory region 连续
这样在buddy setup之前,释放memblock时,将会尽量的保证reserved(已分配memblock)连续。减少early memory时的内存碎片。
其他优点暂且没注意到,有再加上。