博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
页order设置
阅读量:4156 次
发布时间:2019-05-25

本文共 1207 字,大约阅读时间需要 4 分钟。

static inline void set_page_order(struct page *page, unsigned int order){ set_page_private(page, order); __SetPageBuddy(page);} static inline void rmv_page_order(struct page *page){ __ClearPageBuddy(page); set_page_private(page, 0);}
在页设置order情况下,也同时设置buddy标识。
页的order存放在private中。
PageBuddy检查是否空闲即mapcount是否为PAGE_BUDDY_MAPCOUNT_VALUE  
__SetPageBuddy设置mapcount为PAGE_BUDDY_MAPCOUNT_VALUE  
__ClearPageBuddy清除mapcount的PAGE_BUDDY_MAPCOUNT_VALUE  值为-1
#define PAGE_MAPCOUNT_OPS(uname, lname)     \static __always_inline int Page##uname(struct page *page)  \{         \ return atomic_read(&page->_mapcount) ==    \    PAGE_##lname##_MAPCOUNT_VALUE;  \}         \static __always_inline void __SetPage##uname(struct page *page)  \{         \ VM_BUG_ON_PAGE(atomic_read(&page->_mapcount) != -1, page); \ atomic_set(&page->_mapcount, PAGE_##lname##_MAPCOUNT_VALUE); \}         \static __always_inline void __ClearPage##uname(struct page *page) \{         \ VM_BUG_ON_PAGE(!Page##uname(page), page);   \ atomic_set(&page->_mapcount, -1);    \} /* * PageBuddy() indicate that the page is free and in the buddy system * (see mm/page_alloc.c). */#define PAGE_BUDDY_MAPCOUNT_VALUE  (-128)PAGE_MAPCOUNT_OPS(Buddy, BUDDY)
 

转载地址:http://szhti.baihongyu.com/

你可能感兴趣的文章
ios 把数组对象转成json字符串存起来
查看>>
udev规则以及编写
查看>>
ASP.NET DataList 分页之PagedDataSource
查看>>
《linux就该这么学》第十节课:第8章iptables和firewalld
查看>>
《linux就该这么学》第十三节课:第11章和第12章,vsftpd服务与samba和nfs服务
查看>>
[转]mysql日常工作手记
查看>>
火车购票
查看>>
Git分布式项目管理
查看>>
java关于ping方面的解惑
查看>>
Libpacp 深度剖析
查看>>
Node.js Express 框架
查看>>
Python中的map_reduce
查看>>
linux考试题
查看>>
UEditor图片焦点错位,火狐document.body.scrollTop不管用的问题
查看>>
ffmpeg应用笔记
查看>>
xmllib 模块
查看>>
QT的动图加载
查看>>
数据库系列之视图
查看>>
codeforces 807 C. Success Rate(二分)
查看>>
The history and design philosophy of Spring
查看>>