免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 970 | 回复: 3

[内核入门] 文件缓存页换出? [复制链接]

论坛徽章:
13
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:1215-16赛季CBA联赛之广东
日期:2018-07-05 22:34:3615-16赛季CBA联赛之江苏
日期:2018-09-03 12:10:2115-16赛季CBA联赛之上海
日期:2018-09-25 03:49:2215-16赛季CBA联赛之广东
日期:2018-09-25 04:09:12
发表于 2016-10-13 14:46 |显示全部楼层
用作文件缓存的物理页面换出,不是换出到交换文件,而是直接换出到它所缓存的文件上吧?

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2016-10-20 20:13 |显示全部楼层
如果内容没有更新的话,应该不需要交换到swap,下次需要的时候直接从磁盘文件读就可以。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
发表于 2016-10-24 11:31 |显示全部楼层
_nosay 发表于 2016-10-13 14:46
用作文件缓存的物理页面换出,不是换出到交换文件,而是直接换出到它所缓存的文件上吧?




pagecache的换出,是不会到swap的。
如果是dirty,根据当前的压力情况,是等待回写磁盘或者标记为等待回写,之后释放内存页;否则直接释放内存页。

一个常规路径
shrink_zone-->shrink_lruvec--->shrink_list--->shrink_inactive_list--->shrink_page_list(相关的代码都在这个函数中)

1.PNG

论坛徽章:
13
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:1215-16赛季CBA联赛之广东
日期:2018-07-05 22:34:3615-16赛季CBA联赛之江苏
日期:2018-09-03 12:10:2115-16赛季CBA联赛之上海
日期:2018-09-25 03:49:2215-16赛季CBA联赛之广东
日期:2018-09-25 04:09:12
发表于 2016-10-24 13:07 |显示全部楼层
回复 3# 瀚海书香


@nswcfd

哦,感谢大神们指导,这样理解对不?

普通页面换出,盘上页面是从交换分区动态分配的,仍需通过pte记录去向,而pte(p=0),它指向的必须是盘上页面;
mmap()的页或pagecache换出,对应的“文件页”是确定的,就可以静态的记录在vm_area,就不需要通过只为盘上页面服务的pte(p=0)记录。

从而mmap()的页或pagecache对应的虚拟页面,不依赖pte,也就不依赖交换分区,而是在缺页异常时,通过vm_area记录的file*以及异常地址,换入页面内容(其实已经不算是换入了)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP