On 02/14/2010 06:27 PM, Benjamin Herrenschmidt wrote: > On Wed, 2010-02-10 at 01:20 -0800, Yinghai Lu wrote: >> >> The reserve_early() method is list/range based and can handle vast >> amounts of not very fragmented memory - perfect for basically all the >> real bootmem purposes (which is to bootstrap the buddy). >> >> reserve_early() allocated memory could be freed into the buddy later >> on >> as well. The main reason why bootmem is 'destroyed' during >> free-to-buddy >> is because it has excessive internal bitmaps we want to free. With a >> list/range based reserve_early() mechanism there's no such problem - >> they can linger indefinitely and there's near zero allocation >> management >> overhead. " > > Various archs use lib/lmb.c for representing physical memory and > doing early allocations. Might be something to extend ? yes, could merge them later. lmb: include memory range array, and reserved range array, and will be used till bootmem_init early_res: is only reserved range array..., and need to be use with e820 map... and now early_res is used to replace bootmem... will check to make e820 to be fw_memmap and move it /kernel/fw_memmap.c Thanks Yinghai -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html