内存管理之bootmem管理之__free_pages_boot_core
2017-03-06 10:05
489 查看
__free_pages_boot_core
这个函数是对bootmem进行释放,在伙伴系统基础建立后进行。
把页释放到伙伴系统
static void __init __free_pages_boot_core(struct page *page, unsigned int order) { unsigned int nr_pages = 1 << order; struct page *p = page; unsigned int loop; prefetchw(p); for (loop = 0; loop < (nr_pages - 1); loop++, p++) { prefetchw(p + 1); __ClearPageReserved(p); set_page_count(p, 0); } __ClearPageReserved(p); set_page_count(p, 0); page_zone(page)->managed_pages += nr_pages; set_page_refcounted(page); __free_pages(page, order); }
void __free_pages(struct page *page, unsigned int order) { if (put_page_testzero(page)) { if (order == 0) free_hot_cold_page(page, false); else __free_pages_ok(page, order); } } EXPORT_SYMBOL(__free_pages);
相关文章推荐
- 内存管理之bootmem管理之free_all_bootmem
- 内存管理之bootmem管理之标记内存
- 内存管理之bootmem管理之释放内存
- 内存管理之bootmem管理之标记内存为reserve
- 内存管理之bootmem管理之释放所有bootmem内存
- 内存管理之bootmem管理之对外分配函数
- linux 内存管理之bootmem allocator
- 启动期间的内存管理之bootmem_init初始化内存管理--Linux内存管理(十二)
- linux 内存管理之bootmem allocator
- 内存管理API之nr_free_buffer_pages
- 内存管理之memblock管理之移除块 memblock_free
- 内存管理API之free_pages
- 【存储管理】页面的定期换出do_try_to_free_pages()
- 内存管理API之__free_pages
- 内存管理API之mempool_alloc_pages和mempool_free_pages
- 内存管理API之__get_free_pages
- linux 内核 内存管理 bootmem alloctor 申请内存
- 内存管理API之free_pages_exact
- X86内存管理之分段管理
- 段式内存管理和页式内存管理