您的位置:首页 > 其它

内存管理之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);


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: