page count

修改count情景

  1. cache mapping (page->mapping)
  2. private data (page->private)
  3. page mapped in task’s page tables, each mapping is counted.

count值的含义

page ->_count = -1:代表空闲页
page->_count = 0:代表1个引用

函数接口

297 #define put_page_testzero(p)                            \                       
298         ({                                              \                       
299                 BUG_ON(page_count(p) == 0);             \                       
300                 atomic_add_negative(-1, &(p)->_count);  \                       
301         })

减少1个引用,如果引用的值小于0(也就是_count小于-1),则返回true。

define get_page_testone(p)     atomic_inc_and_test(&(p)->_count)

增加一个引用,如果之前的逻辑引用值为0(_count等于-1),则返回为true。增加引用,并且判断之前page是空闲的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值