Linux.ChinaUnix.net
ChinaUnix
|
Linux首页
|
新闻
|
博客
|
文章
|
专栏
|
新手
|
方案
|
图书
|
下载
|
人才
|
手册
|
wiki
|
搜索
会员:
密码:
免费注册
|
忘记密码
|
会员登录
|
搜索
|
帮助
x86下dma映射以及页面锁页换页的问题
‹‹
1
2
3
4
5
首页
»
CU论坛
»
Linux
»
汇总贴列表
»
内核源码
»
请选择您要去的论坛 ←
>新手园地
>系统管理
>网络问题
>硬件支持
>内核问题
>系统互操作专区
>中文支持
>桌面与办公
>影音娱乐
>网络工具
>编程问题
>内核源码
>CPU与编译器
>嵌入式开发
>驱动开发
>数据库应用
>服务器应用
>安全防护
>集群和虚拟机
>开源业界与评论
>贴图娱乐
>红茶馆
>文档专区
>下载共享
>Linux书友会
>Linux站务交流
===============
→ 操作系统技术交流区 ←
>BSD
>Solaris
>SCO UNIX
>HP-UX
>AIX
>IBM AS400应用论坛
>Tru64 UNIX
>IRIX
>Mac OS X
→ 行业解决方案交流区 ←
> 金融行业
> 电信行业
> 互联网行业
> 医卫行业
> 制造行业
> 信息安全
> 教育行业
> 媒体娱乐行业
> 电子政务
> 交通行业
→ 程序设计交流区 ←
>C/C++
>Shell
>Java
>Php
>Perl
>Python
>Web开发
>软件工程
>中间件技术
>GUI编程
>软件配置管理
>VOIP开发技术
→ 网管技术交流区 ←
>网络安全
>网络技术
>Cisco技术
>存储备份之家
>服务器及硬件技术
→ 数据库技术交流区 ←
>MySQL
>PostgreSQL
>Oracle
>Informix
>Sybase
>DB2
→ 应用技术专题交流区 ←
>Web服务器
>Mail服务器
>FTP服务器
>DNS服务器
>Proxy服务器
>LDAP
>VPN
>Lotus
>Samba
→ IT综合交流区 ←
>IT业界新闻与评论
>IT职业生涯
>IT培训与认证
>IT二手大厅
>IT图书与评论
→ IT人的休闲生活交流区 ←
>清茶斋
>运动地带
>快乐数码摄影
>影音文字
>English Forum
>游戏玩家
>旅游天下
>贴图娱乐
>红茶馆
>IT爱车族
→ 站务及频道交流区 ←
>站务交流
>版主会议室
>Linux站务交流
>Linux版主会议室
>博客站务交流区
>下载频道交流区
>CU活动专区
最近访问的论坛 ...
时代域名主机托管全面特惠
|
CU积分兑换详情
|
参加调查赠100积分+《Ubuntu官方指南》
|
100积分:谈谈您对校园网建设的体会
|
‹‹ 上一主题
|
下一主题 ››
[
打印
] [
订阅
] [
收藏
] [
推荐给朋友
] [
本帖文本页
]
duanius
风云使者
UID:471810
注册:2006-10-1
最后登录: 2008-07-04
帖子:
407
精华:
1
可用积分:363
信誉积分:
100
专家积分:
0
(本版)
状态:...保密...
[
资料
] [
站内短信
] [
Blog
]
41楼
发表于 2008-5-7 21:13
鉴于从第二页就开始走题 还是改下名字吧
您对本贴的看法:
鲜花[0]
臭蛋[0]
CU可用积分兑换Linux/Unix精品图书
|
《Ubuntu标准教程》书评获奖名单公布
motalelf
风云使者
UID:384785
注册:2006-3-11
最后登录: 2008-06-22
帖子:
431
精华:0
可用积分:202
信誉积分:
105
专家积分:
0
(本版)
状态:
...离线...
[
资料
] [
站内短信
] [
Blog
]
42楼
发表于 2008-5-7 22:58
kernel分配一个page后,
只有page为有名页时,才加入pagecache和LRU。
而page为匿名页时,kernel并不将page加入pagecache和LRU。首先没有(inode,index)这个标识,就没办法加入pagecache;加入LRU的话,也没有意义,因为kswapd对LRU中的匿名页完全是特殊处理。
kswap有两个相反的功能
甲: 扫描0~3G的各vm_area的过程,在这个过程中
a) 将各匿名页变有名(仅限脏的匿名页,非脏匿名页是另外一套处理)
1. 分配一个(SwapDevice_Inode,SwapDevice_Index),另page变有名
2. page加入pagecache和LRU
3. 再以后的处理,以有名页来对待这个page。
b)遇到有名页
1. pte从引用page,变为引用(inode,Index),因此page->count--。
乙: 扫描LRU中的过程,这个过程中。
a) 将各有名页变匿名(前提是这么做有意义,变匿名时count--将导致page释放到buddy)
b) 遇到匿名页,是另外一套处理。page关联buffer_head则留在LRU;否则丛LRU删除
既甲从(0,3G)中,挑选出来匿名页,将他们变有名,并另他们都在pagecache和LRU中;
同时从(0,3G)中,挑选出来有名页,另pte不再引用这些page,count--。
同时还有个兼职,非脏匿名页只可能是empty_zero_page,直接解除影射,真缺页的时候再补上。
而乙从LRU中,挑选出来有名页,将他们变匿名。前提是(非脏) && (不关联buffer_head) && (匿名后count==0),
同时还有几个兼职,有名页因脏而无法释放的,根据(inode,index),进行回写。
有名页因关联buffer_head无法释放的,尝试解除buffer_head与page的关联。
匿名页关联buffer_head的,尝试解除buffer_head与page的关联。若成功则将page从LRU剔除。
匿名页不关联buffer_head的,直接从LRU剔除
swapout的过程大概如此,
第一步扫描[0,3G]是为的:
1)page均关联(inode,index),脏的话有地方可以回写,否则匿名写都没地方写。
2)page均关联(inode,index),pte若不引用page后,可以引用(inode,index)。
真正的关键还是在第二步。
另外,mmap影射内存而非文件时,
如果只是读,那么都是读的empty_zero_page,和LRU扯不上关系。
但是一旦写,马上COW出来一个匿名的脏页,
随后kswapd在扫描[0,3G]时,马上将它关联一个(SwapDevice_Inode,SwapDevice_Index),并加入到pagecache和LRU;然后pte不再引用这个新产生的有名脏页,而是引用(SwapDevice_Inode,SwapDevice_Index)。
随后kswapd在扫描LRU时,将这个有名脏页,回写到(SwapDevice_Inode,SwapDevice_Index),变为有名干净页;然后再变匿名,变为匿名干净页,从而count==0,释放至buddy。
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
三个代表,吾党所宗。
以杜八耻,以进八荣。
咨尔多士,为民先锋。
夙夜匪懈,和谐是从。
CU可用积分兑换Linux/Unix精品图书
|
《Ubuntu标准教程》书评获奖名单公布
motalelf
风云使者
UID:384785
注册:2006-3-11
最后登录: 2008-06-22
帖子:
431
精华:0
可用积分:202
信誉积分:
105
专家积分:
0
(本版)
状态:
...离线...
[
资料
] [
站内短信
] [
Blog
]
43楼
发表于 2008-5-7 23:10
QUOTE:
原帖由
zx_wing
于 2008-5-7 18:23 发表
塑料袋讲的太细了,我有点看不懂了
恐怕不是太细。面对一个涵盖广,关节多的话题,我觉得自己要么说出来颠三倒四,要么说的不够精确。
上个月我去一个地方面试,人家让我自己谈内存管理,也是这么一个大题目,我觉得实在说不清,说了两句,直接说不懂。最后被pass了。
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
三个代表,吾党所宗。
以杜八耻,以进八荣。
咨尔多士,为民先锋。
夙夜匪懈,和谐是从。
CU可用积分兑换Linux/Unix精品图书
|
《Ubuntu标准教程》书评获奖名单公布
dragchan
侠客
UID:423115
注册:2006-5-28
最后登录: 2008-06-28
帖子:
23
精华:0
可用积分:59
信誉积分:
100
专家积分:
62
(本版)
状态:
...离线...
[
资料
] [
站内短信
] [
Blog
]
44楼
发表于 2008-5-8 10:49
motalelf 解释的够详细!
不过kernel 2.6的MM进行了相当大的修改。例如引入了reverse mapping,kswap中扫描所有process的mm_struct这样耗时的工作,已经不需要了。
您对本贴的看法:
鲜花[0]
臭蛋[0]
CU可用积分兑换Linux/Unix精品图书
|
《Ubuntu标准教程》书评获奖名单公布
duanius
风云使者
UID:471810
注册:2006-10-1
最后登录: 2008-07-04
帖子:
407
精华:
1
可用积分:363
信誉积分:
100
专家积分:
0
(本版)
状态:...保密...
[
资料
] [
站内短信
] [
Blog
]
45楼
发表于 2008-5-8 15:19
QUOTE:
原帖由
motalelf
于 2008-5-7 22:58 发表
另外,mmap影射内存而非文件时,
如果只是读,那么都是读的empty_zero_page,和LRU扯不上关系。
但是一旦写,马上COW出来一个匿名的脏页,
这应该是针对私有的情况吧 如果是共享映射应该不存在cow的情况吧
您对本贴的看法:
鲜花[0]
臭蛋[0]
CU可用积分兑换Linux/Unix精品图书
|
《Ubuntu标准教程》书评获奖名单公布
duanius
风云使者
UID:471810
注册:2006-10-1
最后登录: 2008-07-04
帖子:
407
精华:
1
可用积分:363
信誉积分:
100
专家积分:
0
(本版)
状态:...保密...
[
资料
] [
站内短信
] [
Blog
]
46楼
发表于 2008-5-8 15:23
QUOTE:
原帖由
motalelf
于 2008-5-7 22:58 发表
kernel分配一个page后,
只有page为有名页时,才加入pagecache和LRU。
而page为匿名页时,kernel并不将page加入pagecache和LRU。首先没有(inode,index)这个标识,就没办法加入pagecache;加入LRU的话,也没有 ...
非常清楚 万分感谢
您对本贴的看法:
鲜花[0]
臭蛋[0]
CU可用积分兑换Linux/Unix精品图书
|
《Ubuntu标准教程》书评获奖名单公布
首页
»
CU论坛
»
Linux
»
汇总贴列表
»
内核源码
»
‹‹
1
2
3
4
5
请选择您要去的论坛 ←
>新手园地
>系统管理
>网络问题
>硬件支持
>内核问题
>系统互操作专区
>中文支持
>桌面与办公
>影音娱乐
>网络工具
>编程问题
>内核源码
>CPU与编译器
>嵌入式开发
>驱动开发
>数据库应用
>服务器应用
>安全防护
>集群和虚拟机
>开源业界与评论
>贴图娱乐
>红茶馆
>文档专区
>下载共享
>Linux书友会
>Linux站务交流
===============
→ 操作系统技术交流区 ←
>BSD
>Solaris
>SCO UNIX
>HP-UX
>AIX
>IBM AS400应用论坛
>Tru64 UNIX
>IRIX
>Mac OS X
→ 行业解决方案交流区 ←
> 金融行业
> 电信行业
> 互联网行业
> 医卫行业
> 制造行业
> 信息安全
> 教育行业
> 媒体娱乐行业
> 电子政务
> 交通行业
→ 程序设计交流区 ←
>C/C++
>Shell
>Java
>Php
>Perl
>Python
>Web开发
>软件工程
>中间件技术
>GUI编程
>软件配置管理
>VOIP开发技术
→ 网管技术交流区 ←
>网络安全
>网络技术
>Cisco技术
>存储备份之家
>服务器及硬件技术
→ 数据库技术交流区 ←
>MySQL
>PostgreSQL
>Oracle
>Informix
>Sybase
>DB2
→ 应用技术专题交流区 ←
>Web服务器
>Mail服务器
>FTP服务器
>DNS服务器
>Proxy服务器
>LDAP
>VPN
>Lotus
>Samba
→ IT综合交流区 ←
>IT业界新闻与评论
>IT职业生涯
>IT培训与认证
>IT二手大厅
>IT图书与评论
→ IT人的休闲生活交流区 ←
>清茶斋
>运动地带
>快乐数码摄影
>影音文字
>English Forum
>游戏玩家
>旅游天下
>贴图娱乐
>红茶馆
>IT爱车族
→ 站务及频道交流区 ←
>站务交流
>版主会议室
>Linux站务交流
>Linux版主会议室
>博客站务交流区
>下载频道交流区
>CU活动专区
Copyright © 2001-2008 ChinaUnix.net All Rights Reserved 联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处
京ICP证041476号
清除 Cookies
-
Linux时代
-
Archiver
-
WAP
-
TOP
Processed in 0.045203 second(s), 5 queries , Gzip enabled