免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chishanmingshen

[内存管理] 关于DMA zone的疑问 [复制链接]

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-04-22 15:29 |显示全部楼层
回复 20# uliux

我就是开始这么想的才有疑问,照这样,dma zone在物理内存上岂不是8M到24M了?这肯定不对啊。。。


   

论坛徽章:
0
发表于 2013-04-22 15:41 |显示全部楼层
回复 21# chishanmingshen

兄弟你对linux源码的理解偏差太大了,linux可以被内核分配的内存的开始0地址并不是物理0地址,它必须排除0x1000之前的(这个是兼容原因)还必须排除他自身之后的物理内存才是它可以分配的内存的起始点。你想想也能想到,如果他把它所在的物理内存都分配给了应用程序,那不是把自己覆盖了嘛。哈哈!

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-04-22 16:52 |显示全部楼层
回复 22# uliux

对于老版本,
3G+1M到3G+8M之间是映像对应物理内存的1M到8M,这个没问题吧。
那么,dma zone是物理内存的哪部分?是物理内存的0M到16M?

请大侠帮忙啊。




   

论坛徽章:
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
发表于 2013-04-22 16:57 |显示全部楼层
回复 23# chishanmingshen


Don't waste time to read old codes。


   

论坛徽章:
0
发表于 2013-04-22 17:33 |显示全部楼层
本帖最后由 uliux 于 2013-04-23 10:29 编辑

回复 23# chishanmingshen

每次你在make uImage -j2之后,内核会生成一个System.map文件,在这个文件中有几个标志,从_text到_etext就是内核的代码了,从_etext到_edata就是内核的数据,从_edata到_end就是内核的结束,从这个位置就是zone_dma的开始,我刚才看了下,3.6.9的内核的dma开始地址是“0xc0598b0c A _end",所以算出来大概在物理地址为5.6MB的位置,但这样说是不严谨的因为内核初始化有些函数和数据是要在内核初始化好了之后要释放的所以大概内核要占用5MB左右,再加上物理地址前面的1MB是内核没用到的(是因为兼容性问题)所以,dma的开始地址大概在物理地址的6M的位置,dma_zone从0-16M的位置.

并不是我没及时回复你,只是蛋疼的规定我一个小时只能回复10条。哎  我看到却没法回复!希望我的回答能帮到你!

论坛徽章:
0
发表于 2013-04-22 17:47 |显示全部楼层
回复 23# chishanmingshen

不好意思楼主。物理地址我算错了,是0x0-0x1000000 是0-16M,只不过物理地址的前6M是不会被内核的分配器分配的!会在page的位图中被保留,内核分配器无法分配,但他的分区被分到zone_dma。

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-04-22 20:40 |显示全部楼层
回复 26# uliux

en,got it, thanks~


   

论坛徽章:
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
发表于 2013-04-26 10:33 |显示全部楼层
回复 26# uliux


没有完全看你的回复。
我只指出这里没有空出pfn 0的问题。

PFN 0 contains the real-mode interrupt vector table and BIOS data area, so we just reserve it.



   

论坛徽章:
0
发表于 2013-04-26 11:04 |显示全部楼层
本帖最后由 uliux 于 2013-04-26 11:13 编辑

回复 28# embeddedlwp

thank you!如果有错误欢迎批评指正!
不仅你说的这个pfn0要保留,最少内核代码和数据也要保留的,大约要6M空间!   

论坛徽章:
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
发表于 2013-04-26 11:24 |显示全部楼层
回复 29# uliux


额~

这个是在zone_normal,不是在zone_dma。请看11楼和2楼。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP