pageout
来源:互联网 发布:chart.js的tip提示 编辑:程序博客网 时间:2024/05/01 04:59
/*
* pageout is called by shrink_page_list() foreach dirty page.
* Calls ->writepage().
*/
staticpageout_t pageout(struct page *page, struct address_space *mapping,
struct scan_control *sc)
{
if (!is_page_cache_freeable(page))
return PAGE_KEEP;
if (!mapping) {
if (page_has_private(page)) {
if(try_to_free_buffers(page)) {
ClearPageDirty(page);
pr_info("%s:orphaned page\n", __func__);
return PAGE_CLEAN;
}
}
return PAGE_KEEP;
}
if (mapping->a_ops->writepage ==NULL)
return PAGE_ACTIVATE;
if (!may_write_to_inode(mapping->host,sc))
return PAGE_KEEP;
if(clear_page_dirty_for_io(page)) {
int res;
struct writeback_control wbc = {
.sync_mode = WB_SYNC_NONE,
.nr_to_write =SWAP_CLUSTER_MAX,
.range_start = 0,
.range_end = LLONG_MAX,
.for_reclaim = 1,
};
SetPageReclaim(page);
res = mapping->a_ops->writepage(page, &wbc);
if (res < 0)
handle_write_error(mapping,page, res);
if (res == AOP_WRITEPAGE_ACTIVATE){
ClearPageReclaim(page);
return PAGE_ACTIVATE;
}
if (!PageWriteback(page)) {
ClearPageReclaim(page);
}
trace_mm_vmscan_writepage(page);
inc_zone_page_state(page, NR_VMSCAN_WRITE);
return PAGE_SUCCESS;
}
return PAGE_CLEAN;
}
- pageout
- Java容器(七):TreeMap源码分析
- 区间[A,B]与N互素的元素个数 [容斥][Eratosthenes筛法]
- 简单java扑克牌小程序(发牌,三个玩家,不含大小王)
- 因为jsoup,再见了我的htmlparser
- ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network
- pageout
- zabbix server端安装
- inactive_list_is_low
- POJ-2260 Error Correction 模拟
- windows安装gfrtran+codeblocks
- 第一章 欢迎来到Python世界
- shrink_zone_memcg
- 基于Quartz.Net框架封装任务调度类2
- UVA 12661 Funny Car Racing(最短路)