__SetPageBuddy & __ClearPageBuddy

标签: __SetPageBuddy __ClearPageBuddy
3人阅读 评论(0) 收藏 举报
分类:

__SetPageBuddy

static inline void set_page_order(struct page *page, unsigned int order) 
{  
    set_page_private(page, order);  
    __SetPageBuddy(page); 
}

__ClearPageBuddy

static inline void rmv_page_order(struct page *page) 
{  
    __ClearPageBuddy(page);  
    set_page_private(page, 0); 
}

这两个函数的主要作用是:

在页设置order情况下,也同时设置buddy标识。设置order为0的情况下,同时清除buddy标志。

页的order存放在private中。

PageBuddy检查是否空闲即mapcount是否为PAGE_BUDDY_MAPCOUNT_VALUE

__SetPageBuddy设置_mapcount为PAGE_BUDDY_MAPCOUNT_VALUE

__ClearPageBuddy清除_mapcount的PAGE_BUDDY_MAPCOUNT_VALUE 值为-1

需要注意的是,_mapcount位于page描述符中。

查看评论
    个人资料
    持之以恒
    等级:
    访问量: 6528
    积分: 1009
    排名: 5万+
    最新评论