免费注册 查看新帖 |

Chinaunix

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

Direct IO问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-23 14:20 |只看该作者 |倒序浏览
需求:
    1.使用系统管理之外的一片物理地址,通过mmap映射到用户空间
    2.使用这片空间进行direct IO
问题:     
      direct中通过get_user_page_fast转化为用户地址为page,但是这时候转化失败,因为用户地址对于的page不在系统管理内,direct IO失败。
   
平台:linux2.6.27.29
      不知道各位有什么比较好的解决方法。谢谢!

论坛徽章:
0
2 [报告]
发表于 2010-06-24 11:28 |只看该作者
回复 1# scopengl


    什么叫“使用系统管理之外的一片物理地址”?

论坛徽章:
0
3 [报告]
发表于 2010-06-24 13:00 |只看该作者
本帖最后由 scopengl 于 2010-06-24 13:04 编辑

回复 2# kgn28
比如:如果有256MB物理内存,但是内核初始化时候我给系统物理内存设定230MB,那么剩下的26MB物理内存就是系统管理之外。我的意思是如何使用这片26MB的内存进行DIRECT IO,或者根本做不到?

论坛徽章:
0
4 [报告]
发表于 2010-06-24 13:46 |只看该作者
回复 3# scopengl


    既然你要用这段内存,你为什么要把他放在“系统管理之外“呢?如果在内核的内存管理区(zone)中没有这段内存,内核能使用这段内存吗?也就是mem_map里面根本没有这段内存的概念,怎么将这段内存分成页帧供VM使用呢!

论坛徽章:
0
5 [报告]
发表于 2010-06-24 14:23 |只看该作者
回复 4# kgn28
明白你的意思,我需要在用户空间使用一片物理连续的地址进行IO,主要为了节省内存带宽,提高IO效率,看来这种方法是不行了。

论坛徽章:
0
6 [报告]
发表于 2010-06-27 17:31 |只看该作者
通用文件系统不支持你的需求,找其他的办法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP