免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1953 | 回复: 9
打印 上一主题 下一主题

[内存管理] 有什么方法判断page是file page? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-26 10:16 |只看该作者 |倒序浏览
类似的匿名页可以用
PageAnon(page)

论坛徽章:
0
2 [报告]
发表于 2014-04-26 14:47 |只看该作者
回复 1# wyyzxml
  1. include/linux/mm_inline.h:

  2. static inline int page_is_file_cache(struct page *page)
  3. {
  4.         return !PageSwapBacked(page);
  5. }
复制代码
只有在这个日期后的版本后才有:2008-10-20,见:
https://git.kernel.org/cgit/linu ... 5ce170b2ad26f97df70

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
3 [报告]
发表于 2014-04-27 20:01 |只看该作者
本帖最后由 linuxfellow 于 2014-04-27 20:12 编辑

回复 1# wyyzxml
page->flags & PG_swapbacked
PageAnon(page)也可以



   

论坛徽章:
0
4 [报告]
发表于 2014-04-28 09:38 |只看该作者
回复 2# l4rmbr

谢谢了。我看下哈。


   

论坛徽章:
0
5 [报告]
发表于 2014-04-28 09:39 |只看该作者
回复 3# linuxfellow

也就是说,file page,都是置上 PG_swapbacked flag的?


   

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
6 [报告]
发表于 2014-04-28 18:19 |只看该作者
我理解的是,楼上的说法都不对。 我也不会。

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
7 [报告]
发表于 2014-04-28 19:53 |只看该作者
2楼正解

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
8 [报告]
发表于 2014-04-29 10:29 |只看该作者
embeddedlwp 发表于 2014-04-28 19:53
2楼正解


看懂了!

顺便请教下, PG_swapcache和PG_swapbacked有什么区别? 各自代表什么?

论坛徽章:
0
9 [报告]
发表于 2014-04-29 11:26 |只看该作者
帅绝人寰 发表于 2014-04-29 10:29
看懂了!

顺便请教下, PG_swapcache和PG_swapbacked有什么区别? 各自代表什么?


PG_swapbacked表示一个页是以交换区/交换文件作为后备空间的,类比于page cache页,它是以存储介质中的文件作为后备空间的。

PG_swapcache表示一个页在交换缓存中。
一个页要被交换时,并不是马上写出,而是先置于交换缓存中,此时PG_swapcache置位,并且,该进程的该页表项不会马上修改为swap entry项,
因为可能还有其他进程映射到该页,所以得等所有进程都unmap到该页后,才会真正把该页交换到交换区/交换文件,并且把 页表项改为swap entry,
表示该页现在在交换区/交换文件。

另一方面,当进程要访问该页时,发现swap entry, 知道其在交换区/交换文件中,于是会把它调入到交换缓存中,同样,该进程此时不会马上把swap entry
修改为页表项,因为可能其他进程还未把该页换入,所以该页可能还要在交换缓存中呆一会。等到所以进程都换入该页时,该页才会从交换缓存中删除。

大致如此。细节可能要修改。我研究下代码再来更新。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
10 [报告]
发表于 2014-04-29 12:31 |只看该作者
l4rmbr 发表于 2014-04-29 11:26
PG_swapbacked表示一个页是以交换区/交换文件作为后备空间的,类比于page cache页,它是以存储介质中的 ...


哥,太感谢了!!!!   终于直到是肿么回事了!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP