In frea_area_init_core() for each zone calculates memmap_pages=PAGE_ALIGN(size * sizeof(struct page)) >> PAGE_SHIFT; Which is total memory range zone spans and then it subtracts that value from realsize (memory present in zone). I'm bit confused for SPARSEMEM case where sections not occupied don't have memmap arrays (mem_section[] indexed) allocated. Should not the calculation of memmap_pages above take that into consideration? Also related to same function I've notice 'dma_reserve' is hardly defined anywhere. The boards I've looked at (ARM PBX, PXA) have their kernel text, data, bss allocated in DMA zone, any reasons why 'dma_reserve' is not defined to correctly determine zone watermarks and other things later on? - Mario -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href