1 bitmap
bootmem_init--->bootmem_init_node
/*
* Allocate the bootmem bitmap page.
*/
boot_pages = bootmem_bootmap_pages(end_pfn - start_pfn);
boot_pfn = find_bootmap_pfn(node, mi, boot_pages);
2 mem_map(page*)
bootmem_init--->bootmem_free_node--->free_area_init_node--->alloc_node_mem_map
mem_init--->free_all_bootmem_node--->free_all_bootmem_core--->__free_pages_bootmem--->__free_pages
加到zone->free_area[order].nr_free++
//buddy allocator用到mem_map, mem_map中的free页是根据bootmem_allocator中的bitmap的free页而来
//bootmem allocator被废除
3 mm_init--->kmem_cache_init //slab初始化
阅读(1801) | 评论(0) | 转发(0) |